使用Python进行Windows进程管理

4 投票
2 回答
8818 浏览
提问于 2025-04-15 18:08

我需要一个脚本,用来检查某个特定的程序是否在运行,如果没有找到这个程序,就返回一些信息。我知道可以用subprocess来实现这个功能,但有没有更简单的方法呢?

2 个回答

1

为了实现类似的功能,我使用过 psutil 这个库。这里有一些小提示:

  • 可以用 psutil.pids() 来列出所有正在运行的进程(参考链接
  • 想查看某个进程的信息,可以用 process = psutil.Process(pid)参考链接
  • 如果需要结束一个进程,可以用 process.kill 或者 process.terminate()

在Windows上进行 安装 - 使用 pip 安装时会从源代码编译,所以你可能更想直接下载二进制安装包,可以去 https://pypi.python.org/pypi/psutil/#downloads

7

在Windows系统上,你可以使用WMI(Windows管理工具)来进行一些管理操作:

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")

撰写回答