關于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的一些限制導緻的報錯吧
希望有大佬能夠評論區指教一下~~~