如何解决线程内的WMI-pywintypes.com_error
我正在尝试调用此函数:
c = wmi.WMI()
def get_app_name(hwnd):
"""Get applicatin filename given hwnd."""
try:
_,pid = win32process.GetWindowThreadProcessId(hwnd)
for p in c.query('SELECT Name FROM Win32_Process WHERE ProcessId = %s' % str(pid)):
exe = p.Name
break
except:
import traceback
print(traceback.print_exc())
return None
else:
return exe
在我的烧瓶应用程序中。我相信下面的错误是由于烧瓶在线程内运行而发生的。如果在不运行flask的情况下调用函数get_app_name
,则该函数有效。
这是完整的错误消息:
Traceback (most recent call last):
File "\venvpc\lib\site-packages\wmi.py",line 1064,in _raw_query
return self._namespace.ExecQuery(strQuery=wql,iFlags=flags)
File "<COMObject winmgmts:>",line 3,in ExecQuery
File "\venvpc\lib\site-packages\win32com\client\dynamic.py",line 287,in _ApplyTypes_
result = self._oleobj_.InvokeTypes(*(dispid,LCID,wFlags,retType,argTypes) + args)
pywintypes.com_error: (-2147352567,'Exception occurred.',(0,'SWbemServicesEx',None,-2147221008),None)
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/RestAPI.py",line 11,in get_app_name
for p in c.query('SELECT Name FROM Win32_Process WHERE ProcessId = %s' % str(pid)):
File "\venvpc\lib\site-packages\wmi.py",line 1072,in query
return [ _wmi_object(obj,instance_of,fields) for obj in self._raw_query(wql) ]
File "\venvpc\lib\site-packages\wmi.py",line 1066,in _raw_query
handle_com_error()
File "\venvpc\lib\site-packages\wmi.py",line 258,in handle_com_error
raise klass(com_error=err)
wmi.x_wmi: <x_wmi: Unexpected COM Error (-2147352567,None)>
我已经读过有关pythoncom.CoInitialize
的信息,但是我没有使其成功。
感谢您的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。