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.

È stato utile?

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.

http://msdn.microsoft.com/en-us/library /aa394582.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top