如何使用applescript按应用顺序枚举运行/打开的应用程序?

时间:2011-12-10 21:24:58

标签: macos cocoa applescript

我的最终目标是确定最近使用的网络浏览器。即,用户可能同时运行Safari和Firefox,但最近他们使用了哪些?

所以,我正在尝试列举按窗口/可见性排序的打开的应用程序。

Cocoa / Applescript是否提供了检索此信息的方法?

1 个答案:

答案 0 :(得分:1)

您可以使用NSWorkspace的runningApplications方法和NSRunningApplication的launchDate属性来满足您的需求。

在控制台中查看此代码位的输出结果:

NSArray * arrayOfRunningApps = [[NSWorkspace sharedWorkspace] runningApplications];
if(arrayOfRunningApps)
{
    for(NSRunningApplication * aUserApp in arrayOfRunningApps) 
    {
        NSLog( @"%@ launch time is %@", [aUserApp localizedName], [aUserApp.launchDate description] );
    }
}

至于对某些标准进行排序,这完全取决于您的实施。

一些警告:这些api是从Snow Leopard(10.6)和 它们只适用于用户可以看到的应用程序(在Dock中),而不是UNIX进程或admin / root守护程序或其他任何内容。

我还不确定Applescript,但我希望你能用这些信息到达你需要去的地方。