检查应用程序是否正在运行,而不是作为后台进程

时间:2019-10-17 03:17:25

标签: python python-3.x windows

我有一个Python代码,该代码需要检查可执行文件是否正在运行,但是以某种不同的方式。可执行文件需要一些时间才能启动(显示加载屏幕),具体取决于计算机本身的速度。

单击可执行文件后,启动它的过程如下所示: enter image description here 这需要几秒钟的时间,具体取决于计算机的速度。

根据任务管理器,这是一个后台过程: enter image description here

当可执行文件处于活动状态时(加载屏幕消失,显示窗口),该过程从后台过程转移到“应用程序”部分。 enter image description here

现在,我拥有能够确定某个进程是否正在运行的代码。

import psutil as psu
"gom_inspect.exe" in (p.name() for p in psu.process_iter())

但是此代码已经在加载屏幕上显示了“ True”(作为后台进程),而如果程序处于活动状态并且可以使用,则我需要将其设置为“ True”。

当可执行文件位于“应用程序”部分而不是“后台进程”部分时,Python如何显示“ True”?

请让我知道是否不清楚。

我希望有人能提供帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用pywinauto获取打开的窗口列表,而无需后台进程。然后检查您要查找的应用程序的标题是否在列表中。假设标题为“ GOM检查”:

from pywinauto import Desktop

windows = Desktop(backend="uia").windows()
"GOM Inspect" in [w.window_text() for w in windows]