klvov.narod.ru

DevHelper - библиотека для управления USB-устройствами хранения данных

Эта библиотеку я написал в процессе поиска ответа на вопрос "Как программно остановить USB-устройство", такое, например, как флэш-драйв или USB-винчестер, так, что его можно безопасно извлечь из компьютера (это понадобилось в целях резервного копирования данных). Результат был оформлен в виде COM-библиотеки, которую можно использовать из различных приложений, в том числе и из встроенного в Windows скриптового языка VBScript.

Перед использованием библиотеку, как и любую другую COM-библиотеку, необходимо зарегистрировать в системе. Например, для этого можно переписать файл DevHelper.dll в директорию WINDOWS\system32, и затем вызвать из командной строки

regsvr32.exe C:\WINDOWS\system32\DevHelper.dll

Библиотека предоставляет удобный COM-интерфейс к информации об установленных в системе устройствах, так, что их можно представить, например, в виде такого списка:

Пример использования библиотеки из VBScript

Этот скрипт пытается остановить найденное 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

klvov.narod.ru

Hosted by uCoz