1. 需求
在Windows下,如果有线网卡和无线网卡同时使用的话,那么重启之后无线网卡将不会自动重新连接重启前的WiFi,每次重启之后需要手动连接,相当繁琐。
因此我需要编写一个连接一个开放(未设置密码)的WiFi程序,这样我打包后就能把它设为开机自启项,然后每次开机时就可以让它自动连接相应的WiFi了。
设为开机自启项可以参考:Windows怎么修改注册表设置开机启动程序
Python源码打包成exe可以参考:解决:如何将Python代码打包成exe可执行程序的问题
另外值得说明的是,pywifi一般用于破解WiFi密码,对于连接WiFi并非最好的选择,如果想要开机时自动连接某个WiFi,那不如写个脚本,参考:windows 通过cmd命令(netsh wlan命令)连接wifi
2. 配置
- 在
控制面板/网络和Internet/网络连接
那里可以看到所有网卡,双击所需要使用的无线网卡
- 得到SSID为
PDSU-Student-Auto
(无线网络的名字)
- 点击属性,会看到网卡的名字
3. 代码
# 尝试并连接wifi
import pywifi
import time
def isConnected():
if ifaces.status() == pywifi.const.IFACE_CONNECTED:
print("成功连接")
return True
else:
print("失败")
return False
if __name__ == "__main__":
wifi = pywifi.PyWiFi() # 创建一个无线对象
ifaces = wifi.interfaces()[0] # 取一个无限网卡
print(ifaces.name()) # 输出无线网卡名称
ifaces.disconnect() # 断开网卡连接
time.sleep(0.5) # 缓冲0.5秒
profile = pywifi.Profile() # 配置文件
profile.ssid = "PDSU-Student-Auto" # wifi名称
ifaces.remove_all_network_profiles() # 删除其他配置文件
tmp_profile = ifaces.add_network_profile(profile) # 加载配置文件
ifaces.connect(tmp_profile) # 连接
time.sleep(0.5) # 等待0.5秒后看下是否成功连接了
if not isConnected():
time.sleep(5) # 若未成功,等待5秒后再看下是否成功连接了
isConnected()