![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Доп. информация об устройствах.
OlegNik © (2009-02-10 11:12:00)GetLogicalDrives
GetDriveType
спасибо спасибо.
Ну и еще вопрос. Как получить информацию такого рода.
контроллер IDE/ATAPI PCMCIA диск (H) или
Запоминающее устроиство для USB диск (I)
OlegNik (2009-02-12 12:49:00) [1]Свершилось делюсь и жду критиков.
Подход следующий.
Получаю список всех дисков: GetLogicalDriveStrings();
Лезу в реестр
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCMCIA
за что спасибо clickmaker © (да открываю ключи только на чтение)
PCMCIA али USB здесь не суть.
Собираю имена всех подкаталогов.
Далее по списку дисков через DeviceIoControl получаю паспорт диска
(производитель и т.д.)
Далее сравнеие паспортов диска с списком из реестра. Совпало хорошо
PCMCIA(USB) есть нет плохо.
проверял на NT,XP (PCMCIA шт. 10 от разных производителей ну личную USB проверил проверку вынесла и PCMCIA тоже)
clickmaker (2009-02-11 13:15:00) [2]> винда это отслеживает. Но вот как?
plug-and-play
контроллер устройства оповещает систему, что в него что-то воткнули.
Винда в свою очередь рассылает сообщение WM_DEVICECHANGE
вообще, много чего можно узнать из реестра
отсюда, например
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
OlegNik (2009-02-11 12:26:00) [3]раскрою тему:
мне необходимо работать с ВЗУ тип PCMCIA.
При этом программа в автоматически должна определять есть ли такое
или его нет на компе (я не имею слот а саму флеш).
Изыскания решения ввели меня в уныние и вот почему.
Используя функции
I := GetLogicalDriveStrings()
и далее по I
GetDriveType();
вроде и однозначно отвечала мне кто есть кто.
До определенного момента. вставил флеш размером 512м, а она
возьми да и определись как основной диск (DRIVE_FIXED). Ну и попутно
мелькнула мысль что USB флеш будет DRIVE_REMOVABLE, а это уже не
моя задача.
Понятно что винда это отслеживает. Но вот как? Может кто ответит. а?
Smile (2009-02-10 19:28:00) [4]Заляни сюда
http://www.delphi3000.com/articles/article_4841.asp?SK=USB
и сюда
http://www.delphi3000.com/articles/article_4077.asp?SK=USB
возможно, что и найдешь что-то по интересующему тебя вопросу.
Eraser (2009-02-10 17:34:00) [5]> А подробние можно.
можно - msdn.com
OlegNik (2009-02-10 14:09:00) [6]
> через WMI, наверно
> класс Win32_DiskDrive
А подробние можно.
clickmaker (2009-02-10 11:59:00) [7]через WMI, наверно
класс Win32_DiskDrive