Пользование библиотекой WMI Windows, как я могу извлечь CD-ROM, смонтированный в определенном CD/DVD-приводе?
Я прошу источники из документов WMI или примеров, так как я пользуюсь wmi.py библиотекой по Python.
Было бы замечательно, если решение удовлетворяет компьютер Windows, более новый, чем Windows 2000 и наличие много CD-ROM. (т.е. у Меня есть D: F: диски и оба являются дисководами для компакт-дисков. Я мог бы хотеть извлечь CD в F: конкретно.)
Искавший в сети, но ничто не мог найти релевантным. Последнее решение должно иметь сторонние двоичные файлы и выполняющийся от оболочки.
Вы можете использовать ctypes .
import ctypes
ctypes.windll.WINMM.mciSendStringW(u"set cdaudio door open", None, 0, None)
ОБНОВЛЕНИЕ:
Если у вас несколько дисков, вы можете использовать команду to 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)
Также см. документацию о том, как проверить возвращаемые значения
Сам WMI не предоставляет средств для извлечения дисководов CD / DVD. Однако есть и другие решения, которые включают использование функций Windows API, например:
Использование функции mciSendString
. Не могу помочь вам с кодом Python, но вот пример C #, который поможет вам понять идею:
mciSendString ("open f: type cdaudio alias cdrom", null, 0, IntPtr.Zero);
mciSendString ("открыть дверь компакт-диска", null, 0, IntPtr.Zero);
Использование функции DeviceIOControl
. Пример (также на C #): здесь .