我正在尝试从启用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。
非常感谢您对此方面的帮助。
答案 0 :(得分:0)
试一试
CGWindowListCreate( kCGWindowListOptionOnScreenOnly, kCGNullWindowID);
CFArrayRef aWindowsInfoArrayRef = CGWindowListCreateDescriptionFromArray(aArrayRef);
然后过滤特定应用程序窗口的数组