Эта библиотеку я написал в процессе поиска ответа на вопрос "Как программно остановить USB-устройство", такое, например, как флэш-драйв или USB-винчестер, так, что его можно безопасно извлечь из компьютера (это понадобилось в целях резервного копирования данных). Результат был оформлен в виде COM-библиотеки, которую можно использовать из различных приложений, в том числе и из встроенного в Windows скриптового языка VBScript.
Перед использованием библиотеку, как и любую другую COM-библиотеку, необходимо зарегистрировать в системе. Например, для этого можно переписать файл DevHelper.dll в директорию WINDOWS\system32, и затем вызвать из командной строки
regsvr32.exe C:\WINDOWS\system32\DevHelper.dll
Библиотека предоставляет удобный COM-интерфейс к информации об установленных в системе устройствах, так, что их можно представить, например, в виде такого списка:
Этот скрипт пытается остановить найденное USB-устройство хранения данных.
Dim dl Set dl = CreateObject("DEVHELPER.DeviceList") Dim helper Set helper = CreateObject("DevHelper.USBSTORHelper") Dim usbstor_handle usbstor_handle = 0 For Index = 0 To dl.Count - 1 WScript.Echo dl.Handle(Index) _ & ": " & dl.Description(Index) _ & ": " & dl.LocationInformation (Index) _ & " - " & dl.PhysicalDeviceObjectName(Index) _ & " - " & dl.Service (Index) If dl.Service(Index) = "USBSTOR" Then usbstor_handle = dl.Handle(Index) Next Set dl = Nothing If usbstor_handle <> 0 Then WScript.Echo "Найдено устройсто хранения данных USB, Handle = " & usbstor_handle & VbCrLf & "Будет произведена попытка остановки" helper.StopDevice (usbstor_handle) WScript.Echo "Устройство хранения данных USB успешно остановлено" End If Set helper = Nothing
Скачать библиотеку DevHelper и ее исходный код (MSVC++ 6.0). (.zip, 47 Kb) Инструкция по компиляции содержится в файле how_to_build.txt