Как программно определить возможности оптического привода в Win32

Я пытаюсь создать инструмент развертывания, который будет устанавливать программное обеспечение на основе оборудования, найденного в системе. Мне бы хотелось, чтобы инструмент мог определить, является ли оптический привод записывающим устройством (чтобы определить, должно ли быть установлено программное обеспечение для записи) или может читать DVD-диски (чтобы определить, должен ли быть установлен проигрыватель). Я попытался использовать следующий код

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")
For Each objItem in colItems
    Wscript.Echo "MediaType: " & objItem.MediaType
Next

но он всегда отзывается с CD-ROM

2 ответа

Вы можете использовать WMI для перечисления того, что Windows знает о диске; получить Win32_DiskDrive экземпляр, из которого вы должны быть в состоянии захватить Win32_PhysicalMedia информация о физическом носителе, используемом приводом; свойство MediaType, чтобы узнать, какие носители он использует (CD, CDRW, DVD, DVDRW и т. д. и т. д.).

SDK платформы - IDiscMaster:: EnumDiscRecorders (XP / 2003)

DirectX и DirectShow имеют расширенные интерфейсы для работы с DVD

В противном случае перечислите дисководы и попробуйте запустить DeviceIonControlCode, который поддерживает извлечение информации о типе.

Удачи

Другие вопросы по тегам