python在子线程中使用WMI报错-2147221020-moniker,i,bindCTX=pythoncom.MKParseDisplayName(Pathname)
来源:互联网 发布:拓扑优化方面的书籍 编辑:程序博客网 时间:2024/06/02 03:25
我在一个python脚本中用到了WMI,用于确保杀死超时却未能自己结束的进程 (已经先尝试了Ctrl+Break中止)。
测试代码运行正常,但当我把这个函数放在子线程中使用时,却发现报错:
python在子线程中使用WMI报错-2147221020-moniker,i,bindCTX=pythoncom.MKParseDisplayName(Pathname)
解决方法:
后来在网上检索,发现必须添加初始化函数和去初始化函数,所以在一个子线程中可使用的函数代码类似于:
import pythoncomimport subprocessimport logging def task_kill_timeout(timeout): pythoncom.CoInitialize() WMI = win32com.client.GetObject('winmgmts:') all_process = WMI.ExecQuery('SELECT * FROM Win32_Process where Name="aaa.exe" or Name="bbb.exe" or Name="ccc.exe"') for process in all_process: t = process.CreationDate t = t[:t.find('.')] start_time = time.strptime(str(t), '%Y%m%d%H%M%S' ) time_passed_by = time.time() - time.mktime(start_time) if time_passed_by > timeout: logging.error( 'Run taskkill %s' % process.name) print 'Run taskkill %s' % process.name subprocess.Popen('taskkill /F /pid %s' % process.processid, stderr=subprocess.PIPE, stdout=subprocess.PIPE, ) time.sleep(1.0) pythoncom.CoUninitialize ()在C:\Python27\Lib\site-packages\isapi\install.py中,在方法的后面添加上:
<span style="font-size:18px;"> pythoncom.CoUninitialize ()</span>
0 0
- python在子线程中使用WMI报错-2147221020-moniker,i,bindCTX=pythoncom.MKParseDisplayName(Pathname)
- python在子线程中使用WMI报错-2147221020-moniker,i,bindCTX=pythoncom.MKParseDisplayName(Pathname)
- python在子线程中使用pyHook监控键盘无效,需要加pythoncom的初始化
- 为啥Toast在子线程报错
- 在C#中使用WMI
- 在MFC中使用WMI
- 子线程使用Toast报错
- Hbase在 Windows下运行报错 IllegalArgumentException: Pathname /D:/download/repository/org/apache/.....
- WMI编程之一:在VC中使用WMI
- Python 安装pythoncom、pyHook
- python中wmi介绍和使用
- 【脚本】python中wmi介绍和使用
- 在 PowerShell 中使用 WMI 远程调用
- python+selenium在Pycharm中使用alert报错问题解决
- 安卓在子线程中使用使用Toast
- 在 python 中使用 Selenium 报错self.capabilities = response['value'] KeyError: 'value'的解决办法
- 在子线程中new Handler报错--Can't create handler inside thread that has not called Looper.prepare()
- 在子线程中new Handler报错--Can't create handler inside thread that has not called Looper.prepare()
- 微信分享接口
- [置顶] IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget
- java 运算符
- ASP.NET MVC4 用户登录验证
- poj 1182 食物链
- python在子线程中使用WMI报错-2147221020-moniker,i,bindCTX=pythoncom.MKParseDisplayName(Pathname)
- android 开源图表库MPChart最简单使用方法示例教程Demo--折线图 柱状图
- DMZ区
- 上拉加载和下拉刷新方法,SDK20 以上自带的
- Sqlite中的NULL值和空值的比较
- CentOS系统下调整home和根分区大小的方法
- 综合算法01—考虑换乘的基于路径长度的所有点间K短路算法
- 保存下 cstdlib 在什么情况下使用 和 一些函数
- 无线 WIFI 的13个信道频率范围