📅  最后修改于: 2023-12-03 15:38:36.671000             🧑  作者: Mango
在开发Python应用程序时,有时需要检查其他程序是否正在运行。本文将介绍如何使用Python检查应用程序是否打开。下面是一些方法。
psutil是一个跨平台的进程和系统监控库。通过使用它,可以方便地检查正在运行的应用程序。
import psutil
def check_process(name):
"""
检查给定名称的进程是否正在运行。
"""
for process in psutil.process_iter():
try:
if name.lower() in process.name().lower():
return True
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
return False
另一种方法是使用subprocess模块。它可以启动其他应用程序,并返回进程的PID(进程ID)。然后,可以使用psutil或操作系统的本地命令进行检查。
import subprocess
def check_process(name):
"""
检查给定名称的进程是否正在运行。
"""
process = subprocess.Popen(['pgrep', name], stdout=subprocess.PIPE)
stdout, _ = process.communicate()
return len(stdout.splitlines()) > 0
在Windows平台上,还可以使用win32com模块。它提供了对Windows特定函数的访问,因此可以检查应用程序是否打开。
import win32com.client
def check_process(name):
"""
检查给定名称的进程是否正在运行。
"""
wmi = win32com.client.GetObject('winmgmts:')
processes = wmi.InstancesOf('Win32_Process')
return any(process.Name.lower() == name.lower() for process in processes)
以上是几种常用的方法,您可以根据自己的需求选择适合您的方法。