Tôi quyết định lấy đề xuất của Paulo và thử sử dụng Powershell/dòng lệnh. Tôi đã tìm thấy một số article về kết nối với mạng thông qua dòng lệnh.
Từ dòng lệnh, bạn có thể làm:
netsh wlan connect <profile-name> [name=<ssid-name>]
... nơi phần name=<ssid-name>
là không bắt buộc và nhất thiết chỉ nếu hồ sơ cá nhân chứa nhiều SSID.
Tuy nhiên, có vẻ như hồ sơ phải tồn tại trên máy để công cụ dòng lệnh hoạt động. Tôi đã tìm thấy một số forum post khi lập trình tạo hồ sơ, nhưng tôi không cảm thấy muốn di chuyển qua nó.
Nếu tên cấu hình đã tồn tại, sau đó từ Python bạn có thể làm điều gì đó tương tự như sau:
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
Đây là một giải pháp hoàn hảo, và tôi không hoàn toàn chắc chắn nếu nó sẽ làm việc trong mọi trường hợp , nhưng nó đã làm việc cho trường hợp cụ thể của tôi. Tôi nghĩ rằng tôi sẽ đăng những gì tôi đã đưa ra trong trường hợp ai đó muốn thử sửa đổi nó để làm cho nó tốt hơn.
Bạn có nghĩa là kết nối với mạng không dây không? –
@FarukSahin: Vâng, xin lỗi, đó là ý tôi. Tôi sẽ chỉnh sửa câu hỏi. – Michael0x2a