我使用此函数在Windows上返回了进程列表,如果我在Python中运行它,它运行得很好。
我遇到的问题是当我使用pyinstaller将代码作为服务编译时。它一直运行到到达c = wmi.WMI()
为止,并且服务在那里停止。
有人可以帮助我做一些避免这种情况的事情吗?
功能
:import wmi
def getProcessList(so):
procList = []
if 'win' in so:
print('inside function list as windows')
c = wmi.WMI()
print('getting proccess list:')
for process in c.Win32_Process():
procList.append({'pid': process.ProcessId, 'p_name': process.Name})
return procList
参考
更新
尝试使用win32com
库,而run.exe start
面临相同的问题。但是,在调试模式下运行时,该服务就像一个超级按钮一样工作。
from win32com.client import GetObject
def getProcessList(so):
procList = []
if 'win' in so:
print('inside function list as windows')
processes = WMI.InstancesOf('Win32_Process')
print('amount of process: ' + str(len(processes)) + '.')
for process in processes:
procList.append({'pid': process.Properties_('ProcessId').Value, 'p_name': process.Properties_('Name').Value})
return procList