一、系统级工具
Windows系统 - 任务管理器:
通过`Ctrl + Shift + Esc`打开,可查看所有运行进程,右键选择进程可查看详细信息。
- Process Explorer:第三方工具,支持按进程搜索字符串(如`http://`),可查看进程加载的模块和内存信息。
- 性能监视器:通过`perfmon`工具,可监控系统进程的CPU、内存等资源使用情况。
Linux系统 - top/htop:
实时显示系统进程,按CPU或内存使用率排序。
- ps命令:基础命令,如`ps aux`可列出所有进程详细信息,结合`grep`可筛选特定进程。
- systemd-cgtop:显示进程与系统资源的关系,适合复杂系统分析。
macOS系统 - 活动监视器:
通过`Activity Monitor`查看进程、内存和网络使用情况。
- 终端命令:使用`ps aux`或`top`命令获取进程信息。
二、编程接口
Windows平台(C/C++) - PSAPI(Process Status API):
通过`CreateToolhelp32Snapshot`和`Process32First/Process32Next`函数枚举进程信息。
- WMI(Windows Management Instrumentation):使用`Win32_Process`类获取进程属性,需通过COM接口调用。
Linux平台(Python) - psutil库:
跨平台库,示例代码:
```python
import psutil
for proc in psutil.process_iter(['pid', 'name']):
print(f"PID: {proc.info['pid']}, Name: {proc.info['name']}")
```
- subprocess模块:调用系统命令(如`ps aux`)获取进程信息。
Android平台 - ActivityManager:
通过`getRunningAppProcesses()`方法获取前台进程列表,示例代码(Java):
```java
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List for (RunningAppProcessInfo proc : processes) { Log.d("Process", proc.processName + " (PID: " + proc.pid + ")"); } ``` - Java反射:部分第三方库(如`ProcessList`)可获取所有进程信息,但需注意权限限制。 三、注意事项 权限问题:部分工具(如任务管理器、Process Explorer)需管理员权限。 平台差异:Windows、Linux、macOS的进程管理工具和API存在差异,需针对性选择。 第三方工具风险:使用如Process Explorer等第三方工具时,需确认其来源安全性,避免恶意软件。 通过以上方法,可根据具体需求选择合适的方式收集软件进程信息。