AppKit无法动态检测最前端的应用程序

时间:2018-08-24 08:37:39

标签: python appkit

我在Python中使用Appkit来让计算机感知最前端的应用程序。它将首先正确地识别最前端的应用程序,但是当我更改最前端的应用程序并使终端保持运行状态时,它将不会更新新信息。例如,以下代码将起作用:

from AppKit import NSWorkspace
active_app_name = NSWorkspace.sharedWorkspace().frontmostApplication().localizedName()

但是现在假设我将Chrome而不是Excel设置为最前端的应用程序,并在终端上运行以下程序。然后,在终端打印“ Chrome”后,我单击应用程序“ Excel”,终端将继续打印“ Chrome”,并且永远不会感觉到Excel是最前端的应用程序。

from AppKit import NSWorkspace
while True:
    active_app_name = NSWorkspace.sharedWorkspace().frontmostApplication().localizedName()
    print (active_app_name)
    if active_app_name == 'Microsoft Excel':
        pass
        # do stuff
    else:
        time.sleep(5)

我希望AppKit在更改最前端应用程序时能够感知到最前端的应用程序。

1 个答案:

答案 0 :(得分:0)

为了使active_app动态更新,请使用以下代码:

active_app = NSWorkspace.sharedWorkspace().activeApplication()