无法获取Mountain Lion上进程的窗口列表

时间:2013-09-22 16:02:14

标签: macos sandbox

我正在尝试从启用SandBoxing的应用程序访问MAC OS X(Mountain Lion)中进程的窗口列表。但AXUIElementCopyAttributeValue API失败,Error "kAXErrorCannotComplete"。如果我禁用“沙盒”

,它正在工作
AXUIElementRef app = AXUIElementCreateApplication([[CGWindowInfo objectForKey:(NSString*)kCGWindowOwnerPID] unsignedIntValue]);

if (app) {

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

}

windows数组正在返回nil。

非常感谢您对此方面的帮助。

1 个答案:

答案 0 :(得分:0)

试一试

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

然后过滤特定应用程序窗口的数组