Wie CD mit WMI und Python auszuwerfen?
Frage
Verwenden von Windows' WMI-Bibliothek, wie kann ich CD-ROM in einem bestimmten CD / DVD-Laufwerk montiert auswerfen?
Ich bitte um Quellen von WMI-Dokumentation oder Beispielen, da ich wmi.py Bibliothek auf Python verwenden.
Es wäre toll, wenn Lösung erfüllt Windows-Computer neuer als Windows 2000 und mit mehreren CD-ROMs. (Das heißt ich habe D: F: Laufwerke und beide sind CD-ROM-Laufwerke I auszuwerfen cd in F wollen könnten:.. Spezifisch)
Nach im Netz, konnte aber nichts relevant finden. Die letzte Lösung muss 3rd-Party-Binärdateien sein mit und von der Shell ausgeführt wird.
Lösung
Sie können mit ctypes .
import ctypes
ctypes.windll.WINMM.mciSendStringW(u"set cdaudio door open", None, 0, None)
UPDATE:
Wenn Sie mehr haben, dass ein Laufwerk, können Sie verwenden open Befehl ein bestimmtes Gerät vor dem Aufruf der Funktion oben zu initialisieren. Zum Beispiel (nicht getestet).
ctypes.windll.WINMM.mciSendStringW(u"open D: type cdaudio alias d_drive", None, 0, None)
ctypes.windll.WINMM.mciSendStringW(u"set d_drive door open", None, 0, None)
Auch finden Sie in der Dokumentation wie Rückgabewerte überprüfen
Andere Tipps
WMI selbst bietet keine Mittel CD / DVD-Laufwerke auszuwerfen. Im moment gibt es andere Lösungen jedoch die Funktionen mit Windows API beinhalten, zum Beispiel:
-
Mit der
mciSendString
Funktion. Sie kann nicht mit dem Python-Code helfen, aber hier ist das C # Beispiel zu Hilfe, die Sie bekommen die Idee:mciSendString("open f: type cdaudio alias cdrom", null, 0, IntPtr.Zero); mciSendString("set cdrom door open", null, 0, IntPtr.Zero);
-
Mit der
DeviceIOControl
Funktion. Ein Beispiel (auch in C #) ist hier .