powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Получить список флешек на API
6 сообщений из 6, страница 1 из 1
Получить список флешек на API
    #38314362
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте форумчане.

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

как такое можно провернуть?
...
Рейтинг: 0 / 0
Получить список флешек на API
    #38314381
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
surbanec, а что так громко - API, а без него 20 строк кода не покатят?
...
Рейтинг: 0 / 0
Получить список флешек на API
    #38314395
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вообще желательно на апи... но думаю и другой какойлибо способ пойдет... главное чтобы работал без сбоев.
...
Рейтинг: 0 / 0
Получить список флешек на API
    #38314403
катастрофа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Получить список флешек на API
    #38314408
Фотография surbanec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
катастрофа,

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

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


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