WMIとPythonを使用してCDを排出する方法は?
質問
WindowsのWMIライブラリを使用して、特定のCD/DVDドライブに取り付けられたCD ROMを排出するにはどうすればよいですか?
PythonでWMI.pyライブラリを使用しているため、WMIドキュメントや例からソースを求めています。
ソリューションがWindows 2000よりも新しいWindowsコンピューターを満たし、マルチCD-ROMを持っている場合、それは素晴らしいことです。 (つまり、D:F:ドライブがあり、両方ともCD-ROMドライブです。F:具体的にはCDを排出したいかもしれません。)
ネットで検索しましたが、関連するものは見つかりませんでした。最後の解決策は、サードパーティのバイナリを持ち、シェルから実行することです。
解決
使用できます ctypes.
import ctypes
ctypes.windll.WINMM.mciSendStringW(u"set cdaudio door open", None, 0, None)
アップデート:
あなたがその1つのドライブをもっと持っているなら、あなたは 開いた 上記の関数を呼び出す前に、特定のデバイスを初期化するコマンド。たとえば、(テストされていません)。
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)
また、を参照してください ドキュメンテーション 返品値を確認する方法について
他のヒント
WMI自体は、CD/DVDドライブを排出する手段を提供していません。ただし、Windows API関数を使用することを伴う他のソリューションがあります。たとえば、
を使用して
mciSendString
働き。 Pythonコードを手伝うことはできませんが、アイデアを得るのに役立つC#の例を次に示します。mciSendString("open f: type cdaudio alias cdrom", null, 0, IntPtr.Zero); mciSendString("set cdrom door open", null, 0, IntPtr.Zero);
を使用して
DeviceIOControl
働き。例(C#の)はです ここ.
所属していません StackOverflow