Как извлечь компакт-диск с использованием WMI и Python?
Вопрос
Использование библиотеки WMI Windows 'WMI, как я могу выбросить CD ROM, установленный на определенном диске CD / DVD?
Я прошу источники от WMI Docs или примеров, поскольку я использую библиотеку WMI.PY на Python.
Было бы здорово, если решение удовлетворяет компьютеру Windows, новее, чем Windows 2000, и имея несколько компакт-дисков. (т.е. у меня D: F: Drives и оба являются дисками CD-ROM. Я мог бы выбрать компакт-диск в F: в частности.)
Искал в сети, но не смог найти ничего актуального. Последнее решение должно иметь 3-й партижные двоичные файлы и выполнять из оболочки.
Решение
Вы можете использовать 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)
Также см. документация о том, как проверить возвратные значения
Другие советы
Сам WMI не предоставляет средства для удаления дисков CD / DVD. Тем не менее, есть другие решения, которые включают использование функций API 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 #) здесь.