2013-09-22 30 views
1

我试图从启用了SandBoxing的应用程序访问MAC OS X(Mountain Lion)中进程的窗口列表。但AXUIElementCopyAttributeValue API由于Error "kAXErrorCannotComplete"而失败。它正在工作,如果我禁用“沙盒”无法获取Mountain Lion上的进程的窗口列表

AXUIElementRef app = AXUIElementCreateApplication([[CGWindowInfo objectForKey:(NSString*)kCGWindowOwnerPID] unsignedIntValue]); 

if (app) { 

    NSArray* windows = nil; 
    AXError error = AXUIElementCopyAttributeValue(app, kAXWindowsAttribute, (CFTypeRef*)&windows); 

} 

windows数组正在返回零。

我们非常感谢您在这方面的帮助。

回答

0

试试这个

CGWindowListCreate(kCGWindowListOptionOnScreenOnly, kCGNullWindowID); 
CFArrayRef aWindowsInfoArrayRef = CGWindowListCreateDescriptionFromArray(aArrayRef); 

然后针对特定应用程序的窗口

的滤镜阵列