Avviare il programma sul plug-in hardware USB
Domanda
Esiste un modo per rilevare quando un dispositivo specifico è collegato a una porta USB, quello che vorrei che accadesse è quando collego il mio laptop alla mia docking station che esegue diverse app per tenere conto della mia diversa tastiera, mouse e monitor. In particolare ho un problema con alcuni software per la mia tastiera G15 che impedisce la corretta chiusura del lettore multimediale.
Si spera in .NET, ma se non si apprezzano suggerimenti.
Soluzione
Prova a utilizzare SharpUSBLib . È un wrapper C # attorno al progetto libusb.
Sto incollando un esempio di codice di seguito (incluso nel download - l'ho provato da solo). Sembra abbastanza semplice e penso che ti fornirà molte informazioni sui dispositivi collegati al tuo laptop tramite 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);
}
}
}
Altri suggerimenti
Puoi consultare WMI per ottenere le informazioni sull'hardware.