Должно ли решение быть нативным?Я бы использовал утилиту devcon, созданную Microsoft.Вы можете использовать Python для вызова devcon и анализа выходных данных и отключения необходимых устройств.
Вот пример:
http://en.kioskea.net/faq/1886-enable-disable-a-device-from-the-command-line
Вы можете получить списоксетевых устройств с
devcon hwids =net
Вы можете попытаться проанализировать устройство с WiFi и линиями, которые начинаются с PCI.Или вы можете сделать что-то вроде: devcon disable hwids =net
, к сожалению, это также отключает устройства Ethernet.Если вам нужно просто отключиться от WiFi, вы можете использовать netsh wlan disconnect
РЕДАКТИРОВАТЬ: ОК, наконец-то нашли идеальное решение (IMHO).Вам нужно будет установить два пакета pywin32
и wmi
.Используя привязки WMI (инструментарий управления Windows) для Python, это становится довольно просто.
import wmi
cur=wmi.WMI()
wireless_devices=cur.query("select * from Win32_NetworkAdapter WHERE NetConnectionID = 'Wireless Network Connection'")
for device in wireless_devices:
device.Disable()
Если он возвращает кортеж с первым значением (0), он успешно завершился.Очевидно, это должно быть выполнено от имени администратора (в противном случае вы получите 5 в качестве возвращаемого значения).