Как программно определить возможности оптического привода в 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, который поддерживает извлечение информации о типе.
Удачи