Seite 1 von 1
Fehlerauswertung bei Trennen Netzwerkverbindung
Verfasst: Freitag 15. Oktober 2021, 09:18
von RolandKM
Hallo zusammen,
ich möchte eine Netzwerkverbindung (Laufwerk S) trennen, das klappt ohne Probleme mit
Code: Alles auswählen
def button_A32():
myprocess = subprocess.Popen('net use S: /delete')
Ich komme mit der Fehlerauswertung nicht klar. Wie kann ich feststellen, dass diese Netzwerkverbindung nicht existiert=Fehlermeldung (einfache messagebox reicht) ?
Re: Fehlerauswertung bei Trennen Netzwerkverbindung
Verfasst: Freitag 15. Oktober 2021, 10:17
von Sirius3
Das Argument sollte eine Liste sein, und statt Popen benutzt man hier run:
Code: Alles auswählen
subprocess.run(["net", "use", "S:", "/delete"], check=True)
So bekommst Du bei einem Fehler eine Exception.
my-Präfixe in Variablennamen sind überflüssig, weil sie nichts zum Verständnis beitragen.
Re: Fehlerauswertung bei Trennen Netzwerkverbindung
Verfasst: Freitag 15. Oktober 2021, 10:21
von DeaD_EyE
Ich würde es so machen:
Code: Alles auswählen
import subprocess
def umount_share(drive_letter: str) -> bool:
"""
Umount drive_letter and return True if success.
The windows of invoked net command is hidden.
"""
cmd = ["net", "use", f"{drive_letter.upper()}:", "/delete"]
startup_info = subprocess.STARTUPINFO()
startup_info.dwFlags |= subprocess.STARTF_USESHOWWINDOW
proc = subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, startupinfo=startup_info)
return proc.returncode == 0
print(umount_share("x"))
Anmerkung zu
check=True: Exception abfangen
Re: Fehlerauswertung bei Trennen Netzwerkverbindung
Verfasst: Freitag 15. Oktober 2021, 10:58
von RolandKM
Vielen Dank für die Tipps, jetzt läuft's.