2010-10-28 25 views
0

我正在爲我的應用程序開發WMI查詢。它需要爲給定的VID/PID找到分配的虛擬COM端口。我的查詢目前看起來是這樣的:使用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的語言都可以輕鬆實現相同的查詢。 – 2010-10-29 20:05:07

回答

2

我用這個(C#):

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

我需要再次逃脫反斜線一次WMI的緣故,一次是C#的緣故,所以我在查詢四反斜線結束。

+0

謝謝,Uros。這似乎已經成功了。 – 2010-11-01 14:04:30