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.

War es hilfreich?

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 .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top