Windows предоставляет информацию о различных типах подключенных устройств, таких как жесткие диски, компакт-диски, принтеры и другие. Эти устройства можно подключить к компьютеру через различные интерфейсы, такие как USB, SCSI, последовательные или параллельные порты и т. д.
Посмотрите пример видеоролика о том, что можно с ним делать в приложении базы данных Access (DeviceDetectorAuthDemo.accdb) здесь:
https://www.youtube.com/watch?v=qh5hrhpRNIg
AxDeviceDetector.exe — это (32-битный) ActiveX OOP (вне процесса) EXE-сервер, который предоставляет 2 класса:
В этом репозитории есть три проекта:
AxDeviceDetector.vbp
SaDeviceDetector.vbp
Это не сервер ActiveX, а отдельный исполняемый файл, который служит примером и демонстрацией.
Вы можете просто запустить этот исполняемый файл, для его работы не нужно регистрировать сервер ActiveX , поскольку он не использует классы через ActiveX, они частным образом встроены в исполняемый файл. В этом проекте используются те же классы, но добавлена форма frmDetector, которая отображает события в списке.
ВНИМАНИЕ : Когда вы запустите этот проект в Visual Basic IDE, он сообщит вам, что два класса (DeviceDetector и DeviceInfo) имеют общедоступный интерфейс, что невозможно для автономного исполняемого файла. Это происходит потому, что два проекта используют одни и те же исходные файлы. Visual Basic IDE изменит эти свойства как частные. Не сохраняйте проект с этими изменениями, иначе вам придется восстановить их обратно в «Многопользовательское» для проекта сервера ActiveX.
AxDeviceDetectorTest.vbp
В моем личном блоге есть сообщение, объясняющее этот проект.
DLL-библиотека deviceinfo.dll, необходимая в этом проекте, была создана с помощью Visual Studio 2017 (см. файл readme репозитория deviceinfo_dll), поэтому для правильной работы требуется наличие соответствующей среды выполнения Visual C 2017 (x86), установленной на целевом компьютере.
Вам также понадобится библиотека msvbvm50.dll среды выполнения Visual Basic 5 (SP3).
Загружаемый zip-файл содержит обе необходимые библиотеки DLL, которые следует разместить либо там, где находятся exe-файлы, либо в одном из каталогов PATH.