如何用Python在Windows中关闭接口?
一个朋友问我有没有程序可以让他的内置wifi卡开关。为了这个我在网上查了很多资料,但没有找到合适的办法。有人能告诉我,是否可以用Python直接做到这一点吗?
2 个回答
0
如果有办法通过win32 API在C/C++中实现这个功能(老实说,我也不太清楚),那么你可以使用pywin32这个库来在Python中做到这一点。
3
这个解决方案一定要是本地的吗?我会使用一个叫做“devcon”的工具,这是微软做的。你可以用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
,不过这样会同时禁用以太网设备。如果你只想断开WiFi,可以使用netsh wlan disconnect
。
编辑:好的,最后我找到了完美的解决方案(在我看来)。你需要安装两个包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作为返回值)。