2013-07-18 60 views
0

我在MAC開發和需要得到的所有活動的應用程序當前正在運行的名單列表,我的意思是它有實際窗口,用戶可以看到的那些/關閉/最小化/最大化。需要獲得當前正在運行的應用程序對用戶可見的MAC

我嘗試使用NSWorkspace runningApplications功能,但它給應用程序一個長長的清單(最有可能它也列出了一些隱藏的應用程序),但我只需要有窗口UI的人。

我也用在以下職位的建議,得到了碼頭下面的窗口,它的情況下工作得很好,如果Dock中可見: CGWindowListCreate generates a hugely long list of windows

然而,當底座被隱藏這個解決方案沒有按」工作。

沒有人有任何想法如何獲得Mac上運行用戶應用程序可見的名單?

回答

0

它可能會幫助你。試試這個

for (NSRunningApplication *app in [[NSWorkspace sharedWorkspace] runningApplications]) { 
     NSLog(@"%@",[app localizedName]); 
    } 
0
#import <Foundation/Foundation.h> 

void ListWindows() 
{ 
    NSMutableArray* windows = 
     (__bridge NSMutableArray *)CGWindowListCopyWindowInfo(
             kCGWindowListOptionOnScreenOnly | 
             kCGWindowListExcludeDesktopElements, 
             kCGNullWindowID); 

    for (NSDictionary* window in windows) { 
     if([[window objectForKey:@"kCGWindowLayer" ] intValue] == 0) 
     { 
     NSLog(@"%@", [window objectForKey:@"kCGWindowOwnerName"]); 
     } 
    } 

} 

int main(int argc, const char * argv[]) 
{ 
    NSLog(@"Active windows:"); 
    ListWindows(); 
    return 0; 
} 

輸出示例:

Active windows: 
Xcode 
TextEdit 
Finder 
相關問題