8

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

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

如果解决方案能够满足比 Windows 2000 更新的 Windows 计算机并具有多个 CD-ROM,那就太好了。(即我有 D:F: 驱动器,并且两者都是 CD-ROM 驱动器。我可能特别想在 F: 中弹出 cd。)

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

4

3 回答 3

12

您可以使用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)

另外,请参阅有关如何检查返回值的文档

于 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 回答