Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2010, 18:07   #1
IvanSCM
 
Аватар для IvanSCM
 
Регистрация: 01.11.2008
Сообщений: 9
По умолчанию Обнаружить втыкание флешки и узнать ее VID и PID

Необходимо обнаружить втыкание флешки и узнать ее VID и PID.
Gta Russian Racing Developer
- Ура!! наша мама девственица: закричали дети.
IvanSCM вне форума Ответить с цитированием
Старый 06.03.2010, 18:59   #2
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
Восклицание

"Втыкание" и "оттыкание" можно отловить с помощью WMDeviceChange, ну или использовать компонент ComponentUSB (найдешь в аттаче). Поискал тут по реестру и наткнулся на нужную, думаю, тебе информацию:

В ветке реестра "HKEY_LOCAL_MACHINE\SYSTEM\CurrentC ontrolSet\Services\USBSTOR\Enum" находиться параметр Count, который показует количество подключенных USB устройств, там же параметры от 0 и до Count -1 находяться парметры (если Count > 0) которые имеют в значении кусок адреса ветки, пример: "USB\Vid_13fe&Pid_1e00\078409BE0052 ", которая и имеет Vid и Pid (Vid = 13fe, Pid = 1e00 и последняя запись 078409BE0052 - серийный номер (его мне показуют различные программы для работы с флешками)), если же к адресу "SYSTEM\CurrentControlSet\Enum\ " добавить те значения, то мы получаем ветку с информацией о USB устройстве, пример:
Цитата:
Class: USB
ClassGUID: {36FC9E60-xxxx-xxxx-xxxx-xxxxxxxx0000}
DeviceDesc: Запоминающее устройство для USB
Driver: {36FC9E60-xxxx-xxxx-xxxx-xxxxxxxx0000}\0019
HardwareID: тут можно узнать опять же Vid, Pid и Rev (хотя не знаю что это)
LocationInformation: Patriot Memory
и другое, но оно мне непоказалось нужным...

Да, еще предоставляю функцию, для получения списка букв сьемных носителей:
Код:
function GetRemovableDrives: string;
var
  d: dword;
  b: byte;
begin
  result := '';
  d := GetLogicalDrives;
  for b := 2 to 26 do
    if 1 shl b and d > 0 then
      if GetDriveType(PChar(chr(b+65)+':\')) = DRIVE_REMOVABLE then
        result := result + chr(b+65);
end;
P.S.: Вообщем вся информация дана, для получения той информации которую вы хотели, нужно лишь собрать все в кучу и написать маленькую програмульку (в основном идет работа с реестром).
Вложения
Тип файла: rar ComponentUSB.rar (3.5 Кб, 155 просмотров)

Последний раз редактировалось W0LF; 06.03.2010 в 20:45.
W0LF вне форума Ответить с цитированием
Старый 07.03.2010, 11:02   #3
IvanSCM
 
Аватар для IvanSCM
 
Регистрация: 01.11.2008
Сообщений: 9
По умолчанию

Спасибо. В закладки.
Gta Russian Racing Developer
- Ура!! наша мама девственица: закричали дети.
IvanSCM вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PID и переменные среды окружения _Dark_angel_ Общие вопросы C/C++ 0 21.11.2009 18:16
Метод сортировки пузырьком(помогите обнаружить ошибки) Ker_33rus Общие вопросы C/C++ 5 04.11.2009 15:34
как узнать Pid процесса которому принадлежит окно Пепел Феникса Win Api 3 13.04.2009 13:37
как обнаружить перевод строки... Old_Man_nsk Microsoft Office Excel 2 03.04.2009 16:55
Помогите! Не могу обнаружить ошибку pilevas Помощь студентам 1 23.06.2008 10:48