关于pywintypes.com_error: -2147221020, '无效的语法', None, None
-
- 最后误打误撞的发现
在使用python判断进程是否存在的时候发现一个这个错误
pywintypes.com_error: (-2147221020, ‘无效的语法’, None, None)
具体代码如下
import win32com.client
import time
def check_exsit(process_name):
WMI = win32com.client.GetObject('winmgmts:')
processCodeCov = WMI.ExecQuery('select * from Win32_Process where Name="%s"' % process_name)
if len(processCodeCov) > 0:
return True
while True:
if check_exsit('calc.exe'):
print(11111)
time.sleep(0.5)
os.popen("taskkill /F /IM calc.exe")
pass
本来单独跑这个是顺便跑的起来的
我的项目就是在多个线程中其中有一个去检测这个exe是否存在
期间一直怀疑是不是因为while跑太快导致的读取错误,后面发现加入了sleep只是延缓报错而已
网上搜了半天也没有一个解决的办法
最后误打误撞的发现
》》》》pythoncom.CoInitialize()
WMI = win32com.client.GetObject('winmgmts:')
processCodeCov = WMI.ExecQuery('select * from Win32_Process where Name="%s"' % process_name)
if len(processCodeCov) > 0:
》》》》pythoncom.CoUninitialize()
加入这两个之后就不报错了
由于网络关于win32的资料太少具体原因也不知道到底怎么解决的这个问题
不过从字面意思就是说win32的一些限制导致的报错吧
希望有大佬能够评论区指教一下~~~