使用Windows的WMI库,如何弹出安装在特定CD / DVD驱动器中的CD ROM?
因为我在Python上使用wmi.py库,所以我要求来自WMI文档或示例的资源。
如果解决方案满足比Windows 2000更新且具有多张CD-ROM的Windows计算机,那将是很棒的。 (即我有D:F:驱动器,两者都是CD-ROM驱动器。我可能想在F中弹出cd:具体来说。)
在网上搜索但找不到任何相关内容。最后一个解决方案必须是拥有第三方二进制文件并从shell执行。
答案 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。