2010-10-28 3 views
0

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

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

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

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

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

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

Спасибо.

+0

@ Garett: Этот вопрос касается только WMI и WQL. Тот же запрос можно легко реализовать на C#, C++ или на любом другом языке, который может обращаться к WMI. –

ответ

2

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

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

мне нужно, чтобы избежать обратной косой черты раз ради WMI и еще раз ради С #, так что я закончил с четверного обратной косой черты в запросе.

+0

Спасибо, Uros. Кажется, это трюк. –

 Смежные вопросы

  • Нет связанных вопросов^_^