質問

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#の)はです ここ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top