Je peux obtenir deviceID de WMI, puis je veux utiliser ce deviceID pour vérifier que le périphérique météo est activé/désactivé et si son statut est OK ou non, fondamentalement, je veux utiliser WQL pour interrogez ce périphérique plus tard en utilisant ce périphérique USB unique DeviceID. Voici un exemple de code que je et ai eu exception avecDemande de périphérique USB par DeviceID avec WQL
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)
Quand je lance ce code, je reçois l'erreur suivante:
Traceback (most recent call last):
File "", line 1, in
File "C:\Python27\lib\site-packages\wmi.py", line 1009, in query
return [ _wmi_object (obj, instance_of, fields) for obj in self._raw_query(wql) ]
File "C:\Python27\lib\site-packages\win32com\client\util.py", line 84, in next return _get_good_object_(self.iter.next(), resultCLSID = self.resultCLSID)
pywintypes.com_error: (-2147217385, 'OLE error 0x80041017', None, None)
probablement ma requête WQL est mal en quelque sorte, pourriez-vous me donner un exemple de la bonne façon de composer la requête?
avez-vous une idée sur la façon de transformer la chaîne de '\' à '\\'? – user6603026
Si vous utilisez une ancienne version de Python, le plus simple est avec la méthode 'Replace', mais vous devriez vraiment apprendre' Regex' https://docs.python.org/3/library/re.html parce que c'est intégrale à la manipulation de chaîne Python. (Portez une attention particulière à la fonction '.Sub') – Tim