Iniciar o programa no usb plug-in hardware
Pergunta
Existe uma maneira de detectar quando um dispositivo específico está conectado a uma porta USB, o que eu gostaria que acontecesse é quando eu ligar o meu laptop no meu docking station-lo correr-se vários aplicativos para a conta para o meu teclado diferente, mouse e monitores. Especificamente eu tenho um problema com algum software para o meu teclado G15 parar media player fechando corretamente.
Esperamos que em .NET, mas se não todas as sugestões apreciado.
Solução
Tente usar SharpUSBLib . É um C # wrapper em torno do projeto libusb.
Eu estou colando uma amostra de código abaixo (incluído no download - apenas tentei me). Parece bastante simples e eu acho que vai fornecê-lo com bastante grande quantidade de informações sobre dispositivos conectados ao seu laptop via USB.
foreach (Bus bus in Bus.Busses)
{
Console.WriteLine(bus);
foreach (Descriptor descriptor in bus.Descriptors)
{
Console.WriteLine("\t" + descriptor);
try
{
using (Device device = descriptor.OpenDevice())
{
Console.WriteLine("\t\t Product: " + device.Product);
Console.WriteLine("\t\tManufacturer: " + device.Manufacturer);
Console.WriteLine();
}
}
catch (UsbException e)
{
Console.WriteLine("Got Exception : " + e);
}
}
}
Outras dicas
Você pode olhar para WMI para obter as informações de hardware.