首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用WQL DeviceID查询usb设备

用WQL DeviceID查询usb设备
EN

Stack Overflow用户
提问于 2016-08-25 11:25:04
回答 1查看 654关注 0票数 0

我可以从WMI中获得DeviceID,然后我想使用该deviceID来检查天气设备处于启用\禁用状态,如果它的状态是否正常,基本上我想使用WQL在以后使用这个USB设备唯一的deviceID时查询该设备。下面是我使用并得到异常的代码示例

代码语言:javascript
复制
import wmi
devid = "USB\VID_04F2&PID_B315\6&EF94D1A&0&6"
c = wmi.WMI()
q2 = "SELECT * FROM Win32_PnPEntity WHERE DeviceID = " + devid + " "
dev = c.query(q2)

当我运行这段代码时,我会得到以下错误:

回溯(最近一次调用): 文件"",第1行,在 查询文件“C:\Python27 27\lib\site-packages\wmi.py”,第1009行 返回_wmi_object ( obj,instance_of,self._raw_query中的字段) 文件"C:\Python27\lib\site-packages\win32com\client\util.py",第84行,在下一个返回_get_good_object_(self.iter.next(),resultCLSID = self.resultCLSID)中 pywintypes.com_error:(-2147217385,'OLE错误0x80041017',无,无)

也许我的wql查询是错误的,你能给我一个正确的方法来撰写这个查询吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-25 16:23:56

\是WQL中的特殊字符,必须用反斜杠转义,因此您的devid应该是这样的:

代码语言:javascript
复制
devid = "'USB\\VID_04F2&PID_B315\\6&EF94D1A&0&6'"

编辑:我还注意到,您没有包装常量,所以我在值周围添加了一个单引号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39143972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档