O Windows fornece informações sobre diferentes tipos de dispositivos conectados, como discos rígidos, CDROMs, impressoras e outros. Esses dispositivos podem ser conectados ao computador por meio de diferentes interfaces, como USB, SCSI, portas seriais ou paralelas, etc.
Veja um vídeo de exemplo do que você pode fazer com ele em um aplicativo de banco de dados do Access (DeviceDetectorAuthDemo.accdb) aqui:
https://www.youtube.com/watch?v=qh5hrhpRNIg
AxDeviceDetector.exe é um servidor EXE ActiveX OOP (fora de processo) (32 bits) que expõe 2 classes:
Existem três projetos neste repositório:
AxDeviceDetector.vbp
SaDeviceDetector.vbp
Este não é um servidor ActiveX, apenas um executável independente que serve como exemplo e demonstração.
Você pode simplesmente executar este executável, não há necessidade de registrar o servidor ActiveX para que ele funcione , pois ele não utiliza as classes via ActiveX, elas estão incorporadas de forma privada no executável. Este projeto utiliza as mesmas classes, mas adiciona o formulário frmDetector que exibe os eventos em uma caixa de listagem.
AVISO : Ao iniciar este projeto no IDE do Visual Basic, ele informará que as duas classes (DeviceDetector e DeviceInfo) possuem uma interface pública, o que não é possível para um executável independente. Isso acontece porque os dois projetos compartilham os mesmos arquivos de origem. O IDE do Visual Basic alterará essas propriedades como privadas. Não salve o projeto com essas alterações ou você terá que restaurá-los para "Multiuse" para o projeto do servidor ActiveX.
AxDeviceDetectorTest.vbp
Há uma postagem no blog que explica esse projeto no meu blog pessoal.
A DLL deviceinfo.dll necessária neste projeto foi produzida com o Visual Studio 2017 (consulte o leia-me do repositório deviceinfo_dll), portanto, ela precisa da presença do tempo de execução Visual C 2017 correspondente (x86) instalado no computador de destino para funcionar corretamente.
Você também precisará da DLL de tempo de execução do Visual Basic 5 (SP3) msvbvm50.dll.
O arquivo zip para download contém as DLLs necessárias, que você deve colocar onde estão os arquivos exe ou em um de seus diretórios PATH.