问题描述
我正在尝试调用此函数:
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 (将#修改为@)