如果正在使用Safari / Chrome,我使用pyobjc
创建了一个应用程序来监控当前使用的应用程序或当前URL。我使用以下方式获得最前面的应用程序:
active_app_name = NSWorkspace.sharedWorkspace().frontmostApplication().localizedName()
在一个循环中运行,每秒检索一次信息。然而,考虑到我可以丢失超过30秒的信息,这个解决方案似乎效率低下。
我想知道是否有使用事件的解决方案,即有一个观察者在当前最前面的应用程序发生变化时进行监听。
我找到了这个答案Mac OS X - How to monitor a window change event?,但有两个问题:1。我只需要有关应用程序的信息而不是特定窗口的信息,以及2.我不知道如何将这些消息转换为Python代码。
AppleScript解决方案是合适的,因为我可以使用osascript
从Python调用它。
谢谢!