我正在寻找一种方法来确定第二个最前面的应用程序。这就是我的意思。
假设我按此顺序启动了三个应用程序:Xcode,Interface Builder和我的应用程序。如果我按下Command-tab,我应该在切换台中看到四个应用程序:(从左到右)我的应用程序,Interface Builder,Xcode和Finder。
然后我们说我切换到Finder。应用程序切换器中的新订单是:Finder,我的应用程序,Interface Builder和Xcode。
如果我然后切换回我的应用程序,那么订单现在是我的应用程序,Finder,Interface Builder和Xcode。
我正在寻找一个API,我可以在其中调用它并在启动时获取它Interface Builder是第二个最前面的应用程序,但是当我切换回它时,它现在是Finder。
如果它有任何不同,我的应用程序实际上不会出现在应用程序切换器中,因为它将是代理应用程序(LSUIElement = YES)。
是否有可以执行此操作的API?根据NSWorkspace的说法,我发现的唯一选择是运行一个持续监视activeApplication的计时器。除了在发布期间,这很有效。如果可能的话,我想知道发布时的第二个最前面的应用程序。
有什么想法吗?
答案 0 :(得分:0)
在发布时,第二个最前面的应用程序不会是最后一个应用程序运行吗?
答案 1 :(得分:0)
您可能能够汇集以下信息:
流程管理员参考(GetFrontProcess()
,GetNextProcess()
)
Foundation.framework/Headers/NSGraphics.h
(NSCountWindows()
,NSWindowList()
)
石英窗口服务参考
CoreGraphics.framework/Headers/CGWindow.h
code.google.com CGSPrivate.h
www.cocoadev.com CoreGraphicsPrivate