Как извлечь Usb-слот в хабе сразу после его подключения? - PullRequest
0 голосов
/ 04 августа 2020

Я реализую сценарий, в котором я должен взять слот USB сразу после его подключения. 15 это то, что я хочу взять

Код работает нормально после подключения 1-го Usb. Когда я подключаю 2-й USB раньше, чем через 1 минуту после подключения 1-го, я не получаю никакой информации о 2-м USB, который уже подключен. Я покажу вам код, который обрабатывает получение информации о слоте. Этот метод выполняется после сработавшего события, когда подключен USB.

Главное: мне нужно подождать более 1 минуты, затем я могу подключить второй USB и занять слот. Если я подключу его до того, как подожду 1 минуту после подключения 1-го, я не получу никакой информации о последнем подключенном Usb.

static int GetPhysicalPort()
    {
        try
        {
            devices = new List<USBDeviceInfo>();
            
            ManagementObjectCollection collection;
            using (var searcher = new ManagementObjectSearcher(@"Select * From Win32_PnPSignedDriver WHERE DeviceId LIKE 'USB\\VID%' AND Description = 'USB Mass Storage Device' "))
            {
                collection = searcher.Get();
                searcher.Dispose();
            }
                

            foreach (var device in collection)
            {
                devices.Add(new USBDeviceInfo(
                (string)device.GetPropertyValue("DeviceId"),
                (string)device.GetPropertyValue("Description"),
                (string)device.GetPropertyValue("Location")
                ));
            }

            collection.Dispose();
           
            string LastAdded = devices[0].Location.Substring(6, 4);
            Console.WriteLine(LastAdded);
            return Convert.ToInt32(LastAdded);
        }

        catch (Exception e)
        {
            Console.WriteLine(e);
            return 0;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...