如果某个任务正在任务管理器中运行,我如何在 python 中使用 pywin 或 win32com.client 检查?
Posted
技术标签:
【中文标题】如果某个任务正在任务管理器中运行,我如何在 python 中使用 pywin 或 win32com.client 检查?【英文标题】:How can I check with pywin or win32com.client in python if a certain task is running in task manager? 【发布时间】:2019-08-27 09:10:23 【问题描述】:我不得不说例如在任务管理器中运行的任务 firefox.exe。 使用python`s win32com.client 我想检查firefox是否打开给一个消息,如果它没有打开给另一个消息或打开它或其他东西
我尝试打印所有进程,然后在 process.Name 的进程中搜索“firefox.exe”,但它不起作用
import wmi
import win32com.client
if win32com.client.GetActiveObject("firefox.application")
print("Running firefox !!!")
else:
print("No Firefox!!!")
这是我现在尝试过的,但它不起作用
我想让python脚本在任务管理器中搜索一个进程,如果它没有打开就打开它或做其他事情。
谢谢
【问题讨论】:
【参考方案1】:GetActiveObject
用于获取对已在全局运行对象表中注册的 COM 对象实例的引用。这不是您真正需要的。不过,您可以使用 Windows 管理界面的 COM 接口来非常简单地获取进程列表。
import win32com
wmi = win32com.client.GetObject('winmgmts:')
pids = [p.ProcessId for p in wmi.InstancesOf('win32_process') if p.Name == 'firefox.exe']
因此,我们可以使用 WMI Win32_Process 类获取进程列表,并将其过滤为我们的可执行文件名称,并从进程对象中获取进程 ID 或其他属性。
【讨论】:
以上是关于如果某个任务正在任务管理器中运行,我如何在 python 中使用 pywin 或 win32com.client 检查?的主要内容,如果未能解决你的问题,请参考以下文章