0

我不得不说例如在任务管理器中运行的任务 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 脚本在任务管理器中搜索一个进程,如果它没有打开来打开它或做其他事情。

谢谢

4

1 回答 1

0

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 或其他属性。

于 2019-08-27T12:36:19.823 回答