为什么这个脚本不能与线程python一起工作

2024-06-01 05:05:39 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我一直试图找到一种访问任务管理器的方法。我尝试过一些方法,包括wmi模块和windows任务列表,但都不适合我的需要。wmi太慢了,当我在使用多处理的东西中同时访问它的时候,它变得太慢了。所以我发现这个脚本非常好用,但我不能让它与线程一起工作。在

import win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_Process")
for objItem in colItems:
   print "Name: ", objItem.Name
   print "File location: ", objItem.ExecutablePath

这是错误:

^{pr2}$

Tags: 模块方法name脚本client管理器列表windows
1条回答
网友
1楼 · 发布于 2024-06-01 05:05:39

您需要调用CoInitialize()才能使用win32com.client

import pythoncom
import win32com.client as client

pythoncom.CoInitialize()

strComputer = "."
objWMIService = client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_Process")

for objItem in colItems:
    print "Name: ", objItem.Name
    print "File location: ", objItem.ExecutablePath

有关更多背景信息,请参见using win32com with multithreading

相关问题 更多 >