Использование WQL для ограничения результатов при сопоставлении строк - PullRequest
0 голосов
/ 28 октября 2010

Я работаю над разработкой запроса WMI для моего приложения. Ему нужно найти назначенный виртуальный COM-порт для данного VID / PID. Мой запрос в настоящее время выглядит так:

"SELECT DeviceID FROM Win32_SerialPort WHERE PNPDeviceID = \"USB\\VID_10C4&PID_EA60\\0001\""

Исходя из моих исследований, он должен вернуть "COM8". Тем не менее, я получаю пустой набор.

Допустимы ли сравнения строк в WQL? Насколько я помню, SQL допускает их, но, будучи подмножеством, я не уверен, что их поддержка была перенесена.

Если необходимо, я могу запросить "SELECT DeviceID,PNPDeviceID FROM Win32_SerialPort", а затем в коде проанализировать результаты с использованием сравнения строк, но я бы предпочел ограничить результаты в запросе, если это возможно.

Кроме того, мне было интересно, если сравнения строк действительно поддерживаются в WQL, чувствительны ли они к регистру и / или есть ли способ указать регистр?

Спасибо.

1 Ответ

2 голосов
/ 30 октября 2010

Я использовал это (C #):

"Select * From Win32_SerialPort Where PnPDeviceId = \"PCI\\\\VEN_14F1&DEV_2F30&SUBSYS_205D14F1&REV_01\\\\4&1F7DBC9F&0&10F0\""

Мне нужно было избежать обратных косых черт один раз ради WMI и еще раз ради C #, поэтому я закончил с четырьмя обратными слешами в запросе.

...