Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получить список флешек на API / 6 сообщений из 6, страница 1 из 1
28.06.2013, 18:09
    #38314362
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список флешек на API
Здравствуйте форумчане.

Нужна ваша помощь. Необходимо получить список всех подключенных к машине флеш накопителей. хотябы на уровне букв томов.

как такое можно провернуть?
...
Рейтинг: 0 / 0
28.06.2013, 18:23
    #38314381
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список флешек на API
surbanec, а что так громко - API, а без него 20 строк кода не покатят?
...
Рейтинг: 0 / 0
28.06.2013, 18:47
    #38314395
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список флешек на API
Ну вообще желательно на апи... но думаю и другой какойлибо способ пойдет... главное чтобы работал без сбоев.
...
Рейтинг: 0 / 0
28.06.2013, 19:04
    #38314403
катастрофа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список флешек на API
surbanec, апи не апи я не знаю, главное работает
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
'обнаружение подключенных на компьютере USB накопителей
    Dim objWMI, objCollection, objItem, objWSNet
    Dim objLogicalDisks, objLD, objPartitions, objPart
    Dim strComputer, strTemp
    strComputer = "."
    Set objWMI = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & "\root\cimv2")
    Set objCollection = objWMI.ExecQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType=2")
    'Количество_подсоединённых_USB_устройств = 0 'для информации

    For Each objItem In objCollection
        Set objLogicalDisks = objWMI.ExecQuery("ASSOCIATORS OF {Win32_LogicalDisk.DeviceID=""" & _
                                               objItem.DeviceID & """} WHERE AssocClass=Win32_LogicalDiskToPartition")
        For Each objLD In objLogicalDisks
            Set objPartitions = objWMI.ExecQuery("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
                                                 objLD.DeviceID & """} WHERE AssocClass=Win32_DiskDriveToDiskPartition")
            For Each objPart In objPartitions
                strTemp = strTemp & objItem.DeviceID & " => " & objPart.Caption & " (Диск " & objPart.Index & ")" & vbNewLine
                Диск_папки_файлы_программы = Left$(objItem.DeviceID, 1)

                'Буква_съемного_диска = objItem.DeviceID 'для информации
                'Имя_съёмного_диска = objPart.Caption 'для информации
                'Порядковый_номер_накопителя_на_момент_запроса = objPart.Index 'для информации
                'Имя_съёмного_диска_его_буква = objPart.Caption & " " & objItem.DeviceID 'для информации
                'Количество_подсоединённых_USB_устройств = Количество_подсоединённых_USB_устройств + 1 'для информации

                If Len(Dir$(Диск_папки_файлы_программы & ":" & Адрес_размещения_папки_Рабочая, vbDirectory)) <> 0 Then GoTo Выход_из_поиска_флешки

            Next

            'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
            Set objPart = Nothing
            Set objPartitions = Nothing
        Next
        Set objLD = Nothing
        Set objLogicalDisks = Nothing
    Next
    Set objItem = Nothing
    Set objCollection = Nothing
    Set objWMI = Nothing
...
Рейтинг: 0 / 0
28.06.2013, 19:09
    #38314408
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список флешек на API
катастрофа,

WMI тоже хорошо. Спасибо большое за кодик. будем пробовать.
...
Рейтинг: 0 / 0
29.06.2013, 17:17
    #38314769
surbanec
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить список флешек на API
катастрофа,
Странно у меня не пашет...
на втором цикле заглыхает. первый цикл проходит один раз и до конца. до 3го цикла не доходит... есть подозрения что у меня чтото с wmi на машинке...

Просто было уже такое. на другой машине работал.. и с помощью wmi нормально получал информацию об оборудовании( точно не помню какое оборудование).. пересел на эту... все перестал работать... но тогда я не обратил на это особое внимание... возможно дело в винде... так как.. с ней проблемки разные бывали... винда xP сборка Xtream...
может кто сталкивался с такой проблемой? подскажите что не так может быть что wmi не хочет работать
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получить список флешек на API / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]