获取使用Python的windows8.1进程列表

2024-03-29 10:02:57 发布

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

我想得到内存中进程的列表,包括windows8.1中的名称和PID。在

我的代码是:

import subprocess
import os

cmd = "WMIC PROCESS get Caption,ProcessId"
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
for line in proc.stdout:
  # Additional logic here

循环从不运行。此代码在早期版本的Windows8中有效。有没有其他方法可以推荐?在


Tags: 内存代码import名称cmd列表get进程
2条回答

谢谢你的回复。虽然您的解决方案更适合多平台支持,但这是我使用的解决方案,因为我只运行Windows8.1。在

 from win32com.client import GetObject

 Wmi = GetObject('winmgmts:')
 processes = Wmi.InstancesOf('Win32_Process')

 # Get the Explorer process
 explorer = Wmi.ExecQuery('select * from Win32_Process where Name="explorer.exe"')

 # Grab its Pid
 processId = explorer[0].Properties_('ProcessId').Value

代替繁琐的subprocess,您可以使用复杂的跨平台psutil库。在

使用通用的psutil.process_iter()将允许您对它返回的Process对象做任何您想做的事情(获取名称、pid、过滤您感兴趣的对象等)

例如

for proc in psutil.process_iter():
    print proc.pid, proc.name

相关问题 更多 >