Как извлечь CD с помощью WMI и Python?

Пользование библиотекой WMI Windows, как я могу извлечь CD-ROM, смонтированный в определенном CD/DVD-приводе?

Я прошу источники из документов WMI или примеров, так как я пользуюсь wmi.py библиотекой по Python.

Было бы замечательно, если решение удовлетворяет компьютер Windows, более новый, чем Windows 2000 и наличие много CD-ROM. (т.е. у Меня есть D: F: диски и оба являются дисководами для компакт-дисков. Я мог бы хотеть извлечь CD в F: конкретно.)

Искавший в сети, но ничто не мог найти релевантным. Последнее решение должно иметь сторонние двоичные файлы и выполняющийся от оболочки.

8
задан Bhargav Rao 30 May 2019 в 03:52
поделиться

2 ответа

Вы можете использовать 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)

Также см. документацию о том, как проверить возвращаемые значения

10
ответ дан 5 December 2019 в 14:00
поделиться

Сам 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 #): здесь .

2
ответ дан 5 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: