Hallo Zusammen,
kann ich über Python bestimmte Hardwarekomponenten deaktivieren, handelt sich konkret um einen bestimmten USB-Root-Hub den ich aktivieren und deaktivieren will?
Danke schon mal Dom
[Für die die Wissen wollen warum das Ganze]
Hab seid geraumter Zeit das Problem das Windows der Meinung ist das er eine USB-Hardware nicht erkennen konnte (selbst wenn GAR KEINE Geräte am USB hingen), liegt scheinbar an meinen beiden FrontUSB Steckplätzen. Problem ist das die Meldung permanent aufpoppt und ich nur durch deaktivieren des entsprechenden USB-Root-Hubs da ruhe bekomme. Wenn ich nun aber doch mal ein Gerät vorne anschließen will (das geht nämlich) muss ich immer erst in die Systemsteuerung..., und da wollte ich mit einem Python Programm abhilfe schaffen
Windows Geräte deaktivieren (USB-Root-Hub)
Sieht gut aus. Jetzt muss ich nur noch heute Abend mal testen ob das ganze auch unter Vista rennt. In der Programmbeschreibung wird es nämlich nicht aufgeführt...
Grüße
D
PS: Mal eine doofe Frage, wie ruf ich das Programm mit Parametern auf?
scheint zu kurz gedacht zu sein
Grüße
D
PS: Mal eine doofe Frage, wie ruf ich das Programm mit Parametern auf?
Code: Alles auswählen
file="devcon.exe -enable " + DEVICE_TO_DISABLE
os.startfile(file)
Code: Alles auswählen
os.system("cmd /C devcon.exe enable " + DEVICE_TO_DISABLE)
cmd /C devcon.exe enable @USB\ROOT_HUB\4&56F6491&0
Das wäre die Lösung für oben genanntes Problem, Problem 2:
Wie entwerte ich das & Zeichen ? Die Gerätebezeichnung für Windows enthält & Zeichen und der cmd Interpreter scheint das Zeichen zu interpretieren und die Befehle da zu trennen..., das erwartete
\&
scheint allerdings nicht zu funktionieren
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wieso? Es wird nicht von einer Shell ausgewertet, also muss es auch nicht escaped werden.da.dom hat geschrieben:auch schön, aber dasselbe Problem beim entwerten des "&"-Zeichens.Leonidas hat geschrieben:...subprocess...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hast ja recht, war nur mal wieder zu beschränkt um das ganze korrekt zu benutzen.
Läuft einwandfrei, super vielen Dank. Hier noch mal das Ergebnis für jedermann (die Device ID, passt natürlich nicht mit "devcon.exe status" kann man sie sich anzeigen lassen). Läuft unter XP Problemlos, den Vista-Test muss das Programm (bzw. Devcon.exe) heute Abend dann mal bestehen:
Programm aktiviert angegebenes Gerät bei Start, und deaktiviert es wieder wenn man mit einer Tase bestätigt.
Läuft einwandfrei, super vielen Dank. Hier noch mal das Ergebnis für jedermann (die Device ID, passt natürlich nicht mit "devcon.exe status" kann man sie sich anzeigen lassen). Läuft unter XP Problemlos, den Vista-Test muss das Programm (bzw. Devcon.exe) heute Abend dann mal bestehen:
Programm aktiviert angegebenes Gerät bei Start, und deaktiviert es wieder wenn man mit einer Tase bestätigt.
Code: Alles auswählen
import subprocess
DEVICE_TO_DISABLE='"@USB\\ROOT_HUB\\4&56F6491&0"'
print "\n*** Disable Device ***\n"
p = subprocess.Popen("devcon.exe enable " + DEVICE_TO_DISABLE, shell=False)
p.wait()
print "\n"
raw_input("Hit any Key when Device-Usage is finished...")
print "\n"
p = subprocess.Popen("devcon.exe disable " + DEVICE_TO_DISABLE, shell=False)
p.wait()
exit
Tut mir Leid, dazu bin ich jetzt wirklich zu doof wo soll da jetzt eine Liste hin? Hab das doch so aus der Doku:Leonidas hat geschrieben:Und jetzt statt dem String bei Popen eine Liste verwenden, dann ist es auch richtig. *nitpick*
p = Popen("mycmd" + " myarg", shell=True)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Code: Alles auswählen
p = subprocess.Popen(["devcon.exe", "disable", DEVICE_TO_DISABLE])
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice