Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как программно узнать букву диска флешки, как программно узнать букву диска флешк 
:(
    Опции темы
Baha_Ahmed
Дата 24.2.2010, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 21.12.2007

Репутация: нет
Всего: нет



Помогите, как можно программно узнать имя диска вставленной флешки? Ну к примеру вставили флешку - она как правило всегда меняет имя диска, потому что как правило ее в разные порты сують. Так вот как это программно узнать? smile 
PM MAIL   Вверх
~FoX~
Дата 24.2.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



Ловить WM_DEVICEHANGE с параметром DBT_DeviceArrival, могу дать рабочий пример, но на делфи...


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Akina
Дата 24.2.2010, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(Baha_Ahmed @  24.2.2010,  19:16 Найти цитируемый пост)
она как правило всегда меняет имя диска, потому что как правило ее в разные порты сують

Достаточно через диспетчер дисков один раз дать ей букву за пределами автоматического выделения - и до переформатирования она будет цепляться на этом компе именно на эту букву.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Baha_Ahmed
Дата 2.3.2010, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 21.12.2007

Репутация: нет
Всего: нет



Цитата(Akina @ 24.2.2010,  21:09)
Цитата(Baha_Ahmed @  24.2.2010,  19:16 Найти цитируемый пост)
она как правило всегда меняет имя диска, потому что как правило ее в разные порты сують

Достаточно через диспетчер дисков один раз дать ей букву за пределами автоматического выделения - и до переформатирования она будет цепляться на этом компе именно на эту букву.

да, ты правильно говоришь, но как это сделать на других копмах?
PM MAIL   Вверх
Akina
Дата 2.3.2010, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Сформулируй всю задачу. ЗАЧЕМ тебе нужна буква флешки?




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
hclubmk
Дата 9.3.2010, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.7.2008

Репутация: нет
Всего: нет



Если ловить - второй пост
Если узнать:
Код

Private Sub Form_Load()
  Me.AutoRedraw = True
  Set objSWbemService = GetObject("winmgmts:\\.\ROOT\CIMV2")
  Set wmiDiskDrives = objSWbemService.ExecQuery("SELECT * FROM Win32_DiskDrive")
  For Each wmiDiskDrive In wmiDiskDrives
   If wmiDiskDrive.InterfaceType = "USB" Then 'IDE
    Print "USB диск:", wmiDiskDrive.Model
    Print "Size:", wmiDiskDrive.Size & " Байт"
    PnPID = wmiDiskDrive.PnPDeviceID
    Print "Заводской номер:", Replace(Mid(PnPID, InStrRev(PnPID, "\") + 1), "&0", "")
    strEscapedDeviceID = Replace(wmiDiskDrive.DeviceID, "\", "\\", 1, -1, vbTextCompare)
    Set wmiDiskPartitions = objSWbemService.ExecQuery _
                       ("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & _
                       strEscapedDeviceID & """} WHERE AssocClass = " & _
                       "Win32_DiskDriveToDiskPartition")
    For Each wmiDiskPartition In wmiDiskPartitions
    Set wmiLogicalDisks = objSWbemService.ExecQuery _
                       ("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
                       wmiDiskPartition.DeviceID & """} WHERE AssocClass = " & _
                       "Win32_LogicalDiskToPartition")
    For Each wmiLogicalDisk In wmiLogicalDisks
     Print "Логический диск:", wmiLogicalDisk.DeviceID
    Next
   Next
   End If
  Next
End Sub


Это сообщение отредактировал(а) hclubmk - 9.3.2010, 16:23
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.