封装一个函数可以在windows环境中获取进程列表
时间: 2024-01-22 10:19:06 浏览: 132
可以使用Windows API中的EnumProcesses函数获取进程列表。以下是一个封装好的函数:
```python
import psutil
import win32com.client
def get_process_list():
WMI = win32com.client.GetObject('winmgmts:')
processes = WMI.ExecQuery('SELECT * FROM Win32_Process')
process_list = []
for process in processes:
pid = process.ProcessId
name = process.Name
path = process.ExecutablePath
process_list.append({'pid': pid, 'name': name, 'path': path})
return process_list
```
这个函数使用了`win32com.client`模块和`WMI`对象来获取进程列表,并将进程的PID、名称和路径存储在一个字典中,最后将所有进程的字典存储在一个列表中并返回。同时,也可以使用第三方库psutil来获取进程列表,以下是一个使用psutil的函数:
```python
import psutil
def get_process_list():
process_list = []
for process in psutil.process_iter():
try:
pid = process.pid
name = process.name()
path = process.exe()
process_list.append({'pid': pid, 'name': name, 'path': path})
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
return process_list
```
这个函数使用了psutil模块的`process_iter()`函数遍历所有进程,并通过pid、name和exe()函数获取进程的PID、名称和路径信息,并将其存储在一个字典中。最后将所有进程的字典存储在一个列表中并返回。
阅读全文