so i've been trying to ifnd a way to access task manager. I've tried a few methods including the wmi module and the windows tasklist but neither suit my need. wmi is way too slow and tasklist becomes too slow when i access it multiple times concurrently in something using multiprocessing. so i found this script which works quite nicely but i can't get it to work with threading.
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.Nameprint "File location: ", objItem.ExecutablePath
this is the error:
Exception in thread Thread-1:
Traceback (most recent call last):File "C:\Python27\lib\threading.py", line 810, in __bootstrap_innerself.run()File "C:\Python27\lib\threading.py", line 763, in runself.__target(*self.__args, **self.__kwargs)File "C:\python practice\stuff.py", line 5, in idkobjWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")File "C:\Python27\lib\site-packages\pypiwin32-219-py2.7-win32.egg\win32com\cli
ent\__init__.py", line 95, in Dispatchdispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,c
lsctx)File "C:\Python27\lib\site-packages\pypiwin32-219-py2.7-win32.egg\win32com\cli
ent\dynamic.py", line 114, in _GetGoodDispatchAndUserNamereturn (_GetGoodDispatch(IDispatch, clsctx), userName)File "C:\Python27\lib\site-packages\pypiwin32-219-py2.7-win32.egg\win32com\cli
ent\dynamic.py", line 91, in _GetGoodDispatchIDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.II
D_IDispatch)
com_error: (-2147221008, 'CoInitialize has not been called.', None, None)