Как я могу получить PID VID USB, когда он подключен? - PullRequest
0 голосов
/ 18 июня 2019

Я кодировал с C # в Visual Studio, Windows формы приложения. Я хочу видеть pid и vid USB, когда он подключен. Я написал этот код, но в foreach (ManagementObject service in s.Get()) есть ошибка. В s.Get() часть. Он работает в Form1_Load части, но застревает в WNDProc.

protected override void WndProc(ref Message m)
{
    base.WndProc(ref m);

    if(m.Msg == WM_DEVICECHANGE)
            switch ((int)m.WParam)
            {
                case DBT_DEVICEARRIVAL:
                    listBox1.Items.Add("New Device Connected");

                 ManagementObjectSearcher s = new ManagementObjectSearcher("@SELECT * FROM Win32_USBHub");

                foreach (ManagementObject service in s.Get())
                {

                    listBox1.Items.Add(service);
                }


                string[] ports = SerialPort.GetPortNames();

                Console.WriteLine("The following serial ports were found:");
                foreach (string port in ports)
                {
                    Console.WriteLine(port);
                    listBox1.Items.Add(port);
                 }

                 break;

                case DBT_DEVICEREMOVECOMPLETE:
                    listBox1.Items.Add("Device Removed");
                    break; 
}
...