2
我設法使用CGWindowListCopyWindowInfo獲取桌面上的窗口列表,但下一次是嘗試獲取窗口的屬性,如程序名稱,標題和其他屬性。如何從窗口列表中使用CGWindowListCopyWindowInfo獲取程序的信息
我應該查看哪些API,並且我們是否有關於如何執行此操作的示例?
我設法使用CGWindowListCopyWindowInfo獲取桌面上的窗口列表,但下一次是嘗試獲取窗口的屬性,如程序名稱,標題和其他屬性。如何從窗口列表中使用CGWindowListCopyWindowInfo獲取程序的信息
我應該查看哪些API,並且我們是否有關於如何執行此操作的示例?
列表窗口和檢索特定的信息,同時通過循環:
NSMutableArray *windows = (NSMutableArray *)CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);
for (NSDictionary *window in windows) {
NSString *owner = [window objectForKey:@"kCGWindowOwnerName" ];
NSString *name = [window objectForKey:@"kCGWindowName" ];
NSLog(@"%@ - %@",owner,name);
}
可用鍵:
kCGWindowIsOnscreen
kCGWindowLayer
kCGWindowMemoryUsage
kCGWindowName
kCGWindowNumber
kCGWindowOwnerName
kCGWindowOwnerPID
kCGWindowSharingState
kCGWindowStoreType
如何讓喜歡什麼樣的程序,例如,瀏覽器信息,如果它是瀏覽器,獲取歷史記錄等 – 2011-05-28 13:56:16
以這種方式檢索「種類的應用程序」是不可能的。但是,您可以再次檢查包含所有瀏覽器的預定義數組,即「kCGWindowOwnerName」。示例數組:NSArray * browsers = [[NSArray alloc] initWithObjects:@「Safari」,@「Firefox」,@「Chrome」,@「Opera」,nil];'示例檢查:'[browsers containsObject:theOwnerName]; '。瀏覽器歷史記錄對於每個瀏覽器都是完全不同的。 – Anne 2011-05-28 14:23:31