2

我希望我的应用程序知道哪些应用程序当前正在运行并显示在表格中。在表格中,它将显示所有正在运行的应用程序名称,每个应用程序旁边都有一个按钮。单击按钮时,我们必须打开特定应用程序的窗口,即使它已最小化或关闭。我通过以下代码获得了正在运行的应用程序列表,但没有获取应用程序的窗口,因为 NsRunningApplication 对象没有任何窗口或视图。谁能帮帮我吗?

NSMutableArray* mOpendAppsArray = [[NSMutableArray alloc] init];
NSMutableArray* mOpenedAppsNamesArray = [[NSMutableArray alloc] init]; 
NSUInteger count = [[[NSWorkspace sharedWorkspace] runningApplications] count]; 
for (NSUInteger i = 0; i < count; i++) {
    NSRunningApplication *app = [[[NSWorkspace sharedWorkspace] runningApplications] objectAtIndex: i];

    if(app.activationPolicy == NSApplicationActivationPolicyRegular) {
        [mOpenedAppsNamesArray addObject:app.localizedName];
        [mOpendAppsArray addObject:app];
    }
}
4

1 回答 1

0

如果除了本地化名称(我假设这是您在表格中显示的名称)之外,您还获得了应用程序的 bundleID,则可以使用以下内容激活应用程序:

NSArray* apps = [NSRunningApplication runningApplicationsWithBundleIdentifier:@"com.bla.blah"];
[(NSRunningApplication*)[apps objectAtIndex:0] activateWithOptions: NSApplicationActivateAllWindows];
于 2016-02-28T03:06:47.867 回答