8

WindowsのWMIライブラリを使用して、特定のCD /DVDドライブにマウントされたCD-ROMを取り出すにはどうすればよいですか?

Pythonでwmi.pyライブラリを使用しているので、WMIドキュメントまたは例からのソースを求めています。

ソリューションがWindows2000よりも新しくマルチCD-ROMを搭載したWindowsコンピュータを満足させることができれば素晴らしいと思います。(つまり、D:F:ドライブがあり、どちらもCD-ROMドライブです。具体的にはF:でCDを取り出したい場合があります。)

ネットで検索しましたが、関連するものは見つかりませんでした。最後の解決策は、サードパーティのバイナリを使用し、シェルから実行する必要があります。

4

3 に答える 3

12

ctypesを使用できます。

import ctypes

ctypes.windll.WINMM.mciSendStringW(u"set cdaudio door open", None, 0, None)

アップデート:

複数のドライブがある場合は、上記の関数を呼び出す前に、コマンドを開いて特定のデバイスを初期化するために使用できます。たとえば(テストされていません)。

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)

また、戻り値を確認する方法についてのドキュメントを参照してください

于 2010-07-05T07:58:06.157 に答える
3

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#)はここにあります。

于 2010-07-04T11:36:05.513 に答える
0

pygameを使用できます

pygame.cdrom.CD.eject()
于 2021-11-12T08:21:36.463 に答える