Come espellere CD utilizzando WMI e Python?
Domanda
Utilizzando biblioteca WMI di Windows', come posso espellere CD ROM montato in una specifica unità CD / DVD?
Chiedo fonti di documenti WMI o esempi da quando sto usando biblioteca wmi.py su Python.
Sarebbe bello se il computer soddisfa soluzione di Windows più recenti di Windows 2000 e che hanno a più CD-ROM. (Cioè devo D: F: azionamenti ed entrambi sono unità CD-ROM potrei voler espulsione cd in F:.. In particolare)
cercato in rete ma non riusciva a trovare nulla di rilevante. L'ultima soluzione deve essere avere 3rd binari di partito e l'esecuzione dal guscio.
Soluzione
È possibile utilizzare ctypes .
import ctypes
ctypes.windll.WINMM.mciSendStringW(u"set cdaudio door open", None, 0, None)
UPDATE:
Se si dispone di più di un disco, è possibile utilizzare per comando di apertura per inizializzare un dispositivo specifico prima di chiamare la funzione di cui sopra. Per esempio (non testato).
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)
Inoltre, consultare la documentazione su come controllare i valori di ritorno
Altri suggerimenti
WMI sé non fornisce i mezzi per espellere unità CD / DVD. Ci sono altre soluzioni, però, che coinvolgono utilizzando le funzioni API di Windows, ad esempio:
-
Uso della href="http://msdn.microsoft.com/en-us/library/ms709492.aspx" rel="nofollow noreferrer">
mciSendString
funzionemciSendString("open f: type cdaudio alias cdrom", null, 0, IntPtr.Zero); mciSendString("set cdrom door open", null, 0, IntPtr.Zero);
-
Uso della href="http://msdn.microsoft.com/en-us/library/aa363216.aspx" rel="nofollow noreferrer">
DeviceIOControl
funzionequi .