我在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在更改最前端应用程序时能够感知到最前端的应用程序。
答案 0 :(得分:0)
为了使active_app动态更新,请使用以下代码:
active_app = NSWorkspace.sharedWorkspace().activeApplication()