使用Python进行Windows进程pipe理

我需要一个脚本来检查一个特定的进程是否正在运行,如果找不到,就返回一些东西。 我知道这可以使用subprocess完成,但有一个更简单的方法来做到这一点?

Solutions Collecting From Web of "使用Python进行Windows进程pipe理"

在Windows上,您可以使用WMI:

import win32com.client def find_process(name): objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator") objSWbemServices = objWMIService.Connectserver(".", "root\cimv2") colItems = objSWbemServices.ExecQuery( "Select * from Win32_Process where Caption = '{0}'".format(name)) return len(colItems) print find_process("SciTE.exe") 

看看: 获取Windows上的进程信息

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

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

在windows上安装 pip将从源代码(这意味着编译)进行安装,所以你可能想从https://pypi.python.org/pypi/psutil/#downloads下载二进制安装。