Конференция "WinAPI" » Доп. информация об устройствах.
 
  • OlegNik © (10.02.09 11:12) [0]
    GetLogicalDrives
    GetDriveType
    спасибо спасибо.
    Ну и еще вопрос. Как получить информацию такого рода.

    контроллер IDE/ATAPI PCMCIA диск (H) или
    Запоминающее устроиство для USB диск (I)
  • clickmaker © (10.02.09 11:59) [1]
    через WMI, наверно
    класс Win32_DiskDrive
  • OlegNik © (10.02.09 14:09) [2]

    > через WMI, наверно
    > класс Win32_DiskDrive

    А подробние можно.
  • Eraser © (10.02.09 17:34) [3]
    > А подробние можно.

    можно - msdn.com
  • Smile (10.02.09 19:28) [4]
    Заляни сюда
    http://www.delphi3000.com/articles/article_4841.asp?SK=USB
    и сюда
    http://www.delphi3000.com/articles/article_4077.asp?SK=USB
    возможно, что и найдешь что-то по интересующему тебя вопросу.
  • OlegNik © (11.02.09 12:26) [5]
    раскрою тему:
    мне необходимо работать с ВЗУ тип PCMCIA.
    При этом программа в автоматически должна определять есть ли такое
    или его нет на компе (я не имею слот а саму флеш).
    Изыскания решения ввели меня в уныние и вот почему.
    Используя функции
      I :=  GetLogicalDriveStrings()
      и далее по I
       GetDriveType();
      вроде и однозначно отвечала мне кто есть кто.
      До определенного момента. вставил флеш размером 512м, а она
    возьми да и определись  как основной диск (DRIVE_FIXED). Ну и попутно
    мелькнула мысль что USB флеш будет DRIVE_REMOVABLE, а это уже не
    моя задача.
      Понятно что винда это отслеживает. Но вот как? Может кто ответит. а?
  • clickmaker © (11.02.09 13:15) [6]
    > винда это отслеживает. Но вот как?

    plug-and-play
    контроллер устройства оповещает систему, что в него что-то воткнули.
    Винда в свою очередь рассылает сообщение WM_DEVICECHANGE

    вообще, много чего можно узнать из реестра
    отсюда, например
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
  • OlegNik © (12.02.09 12:49) [7]
    Свершилось делюсь и жду критиков.
    Подход следующий.

    Получаю список всех дисков: GetLogicalDriveStrings();

    Лезу в  реестр
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCMCIA
    за что спасибо clickmaker ©  (да открываю ключи только на чтение)
    PCMCIA али USB здесь не суть.
    Собираю имена всех подкаталогов.
    Далее по списку дисков через DeviceIoControl получаю паспорт диска
    (производитель и т.д.)
    Далее сравнеие паспортов диска с списком из реестра. Совпало хорошо
    PCMCIA(USB) есть нет плохо.
    проверял на NT,XP (PCMCIA шт. 10 от разных производителей ну личную USB проверил проверку вынесла и PCMCIA тоже)
 
Конференция "WinAPI" » Доп. информация об устройствах.
Есть новые Нет новых   [134435   +34][b:0][p:0]