Postanowiłem wziąć propozycję Paula i spróbować użyć Powershell/linii poleceń. Znalazłem article o łączeniu się z siecią za pomocą wiersza poleceń.
z linii poleceń, można to zrobić:
netsh wlan connect <profile-name> [name=<ssid-name>]
... gdzie name=<ssid-name>
część jest opcjonalne i niekoniecznie tylko jeżeli profil zawiera wiele identyfikatorów SSID.
Wygląda jednak na to, że profil musi już istnieć na komputerze, aby rzeczy linii poleceń działały. Znalazłem forum post programowo tworząc profil, ale nie miałem ochoty go przeszukiwać.
Jeśli nazwa profil już istnieje, to z Pythonie można zrobić coś podobnego do poniższego:
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
To niedoskonałym rozwiązaniem, a ja nie jestem do końca pewien, czy to zadziała w każdym przypadku , ale zadziałało to w moim przypadku. Pomyślałem, że opublikuję to, co wymyśliłem na wypadek, gdyby ktoś chciał spróbować zmodyfikować to, żeby było lepiej.
Masz na myśli połączenie z siecią bezprzewodową? –
@FarukSahin: Tak, przepraszam, o to mi chodziło. Będę edytować pytanie. – Michael0x2a