Определение серийного номера съемного носителя

Определить серийный номер флешки с помощью Delphi довольно просто. Основная функция для определения SerialNumber является GetVolumeInformation, которая включает себя несколько параметров.

GetVolumeInformation – это API функция принимающая ряд параметров, один из которых является указатель на переменную, которая будет хранить серийный номер VolumeSerialNumber. Ознакомиться со всеми тонкостями работы и параметрами функции GetVolumeInformation можно в MSDN .

Для того чтобы узнать, является ли устройство съемным носителем используется  следующий алгоритм:

1. Узнаем все логические устройства с помощью функции GetLogicalDrives, которая возвращает ряд битов, каждый из них является последовательным номером диска. К примеру (0 – диск А, 1- диск B, 2 – диск C и т.д).

2. Узнаем,

является логический диск съемным (флешка или дискета), для этого используется  цикл, и операция сравнения типа устройства. Узнать тип устройства можно благодаря API-функции GetDriveType ()  -в качестве параметра указывается указатель на том устройства. После чего функция возвращает тип устройства, возвращаемый результат необходимо сравнивать с DRIVE_removable. Таким образом, можно определить являются ли устройств со съемными носителями или нет.

В MSDN можно встретить другой вариант для распознавания usb-flash устройства – это использование функции SetupDiGetDeviceRegistryProperty и указать SPDRP_REMOVAL_POLICY.

В качестве примера можно использовать функцию, которая выводит список съемных носителей включая USB-флеш и дискеты.

Перечень съемных носителей будет внесен в объект TStringList.

Метки:  Delphi. USB-флешка. железо

Источник: entropiya-blog.ru

Категория: Онлайн-шоппинг

Похожие статьи: