使用Python将我的Windows计算机与无线AP连接起来

我想写一个python脚本,可以使我的计算机关联到一个无线接入点,给定的名称作为一个string。 例如,我可能会指定我想连接到linksys ,我的脚本会导致计算机这样做。

我看了一下这个问题,却无法从查看提供的链接中理解该怎么做。

有人能指出我正确的方向吗?

Solutions Collecting From Web of "使用Python将我的Windows计算机与无线AP连接起来"

我决定采取保罗的建议,并尝试使用Powershell /命令行。 我找到了一篇关于通过命令行连接到网络的文章 。

从命令行,你可以这样做:

 netsh wlan connect <profile-name> [name=<ssid-name>] 

…其中name=<ssid-name>部分是可选的,并且只有在配置文件包含多个ssid的情况下才有必要。

但是,它看起来像配置文件必须已经存在在机器上的命令行的东西工作。 我确实找到了一个以编程方式创建一个配置文件的论坛帖子 ,但我不想通过它拉票。

如果配置文件名称已经存在,那么从Python可以做类似于以下的事情:

 import subprocess def connect_to_network(name): process = subprocess.Popen( 'netsh wlan connect {0}'.format(name), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() # Return `True` if we were able to successfully connect return 'Connection request was completed successfully' in stdout 

这是一个不完美的解决方案,我不能完全确定它是否能够在任何情况下都能正常工作,但是对于我的具体情况它确实起作用。 我想我会张贴我想出来的情况,以防其他人想要尝试修改它,使其更好。

你链接的答案是关于从Windows API调用低级C函数的。 摆弄低水平的东西会让我的大脑受到伤害。

本地C调用有一个.Net包装 ,你可以直接从IronPython使用这个更高级别的API。 不幸的是,它没有很好的记录,但是查看C#示例和挖掘源代码应该比调用底层API更容易。 这是一个非常以Windows为中心的解决方案,所以PowerShell可以更好地为您服务 。