如何使用WMI和Python弹出CD?

时间:2010-07-04 10:13:10

标签: python winapi wmi cd-rom

使用Windows的WMI库,如何弹出安装在特定CD / DVD驱动器中的CD ROM?

因为我在Python上使用wmi.py库,所以我要求来自WMI文档或示例的资源。

如果解决方案满足比Windows 2000更新且具有多张CD-ROM的Windows计算机,那将是很棒的。 (即我有D:F:驱动器,两者都是CD-ROM驱动器。我可能想在F中弹出cd:具体来说。)

在网上搜索但找不到任何相关内容。最后一个解决方案必须是拥有第三方二进制文件并从shell执行。

2 个答案:

答案 0 :(得分:10)

您可以使用ctypes

import ctypes

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

<强>更新

如果您拥有多个驱动器,则可以在调用上述功能之前使用open命令初始化特定设备。例如(未经测试)。

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)

另外,请参阅documentation了解如何检查返回值

答案 1 :(得分:2)

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#中)是here