列出64位Windows上正在运行的进程

2024-05-23 14:06:06 发布

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

我正在编写一个小的python脚本,它将从我运行的Windows的vm中获取信息。

目前,我可以使用以下方法列出32位XP计算机上的进程:

http://code.activestate.com/recipes/305279/

是否有可能以某种方式检测运行的windows版本并执行一种不同的方法来获取64位计算机上的进程,我正在尝试从64位Vista和64位windows 7获取进程。

有什么想法吗?


Tags: 方法版本脚本comhttp进程windows计算机
3条回答

在activestate上还有另一个配方,它做了类似的事情,但是使用了Performance Data Helper library(PDH)。

我已经在我的Windows7 64位机上测试过了,它在那里工作——所以大概相同的功能在32位和64位机上都能工作。

你可以在这里找到食谱:http://code.activestate.com/recipes/303339/

另一种方法是使用WMI,Python中有一个使用wmi模块的示例:

http://timgolden.me.uk/python/wmi/cookbook.html

import wmi
c = wmi.WMI ()

for process in c.Win32_Process ():
  print process.ProcessId, process.Name

如果不想依赖任何额外安装的模块,那么可以分析wmic的输出,例如:

c:\> wmic process get description,executablepath    
...
explorer.exe               C:\Windows\explorer.exe
cmd.exe                    C:\Windows\SysWOW64\cmd.exe
conhost.exe                C:\Windows\system32\conhost.exe
...

引用:http://geekpedia.wordpress.com/2008/08/18/use-command-line-to-track-windows-processes/

出于类似的目的,我使用了psutil库。一些提示:

  • 使用psutil.pids()reference)列出进程
  • 使用process = psutil.Process(pid)reference)检查进程信息
  • process.killprocess.terminate()

在windows上的Installation-pip将从源代码进行安装(这意味着编译),因此您可能希望从https://pypi.python.org/pypi/psutil/#downloads下载二进制安装。

相关问题 更多 >