在Windows中使用psutil查找进程是否正在运行

2 投票
3 回答
14334 浏览
提问于 2025-04-18 09:15
process_name = "CCC.exe"
for proc in psutil.process_iter():
    if proc.name == process_name:
        print ("have")
    else: 
        print ("Dont have")

我知道CCC.exe这个程序正在运行。我用Python 2.7和3.4都试过这个代码。我也导入了psutil这个库。不过,虽然这个程序确实在运行,但它却显示“没有找到”。

3 个回答

0

我通过使用 WMI 而不是 psutil 解决了这个问题。你可以在这里找到 WMI 的信息

在 Windows 上安装它。

import wmi c = wmi.WMI () for process in c.Win32_Process (): if "a" in process.Name: print (process.ProcessId, process.Name)

4

nameproc 的一个方法:

process_name = "CCC.exe"
for proc in psutil.process_iter():
    if proc.name() == process_name:
        print ("have")
    else: 
        print ("Dont have")
0

这是我在Windows 7上用python v2.7时修改过的版本,运行得很好。

你在代码中这里的写法是错的:if proc.name == process_name:。试着用print proc.name来输出一下,你会发现为什么你的代码没有按预期工作。

代码:

import psutil
process_name = "System" 
for proc in psutil.process_iter(): 
    process = psutil.Process(proc.pid)# Get the process info using PID
    pname = process.name()# Here is the process name
    #print pname
    if pname == process_name: 
        print ("have") 
    else: print ("Dont have")

这里有一些关于如何使用psutil的例子。我只是看了一下,找到了这个解决方案,也许还有更好的方法。希望对你有帮助。

撰写回答