osx - 在 Mountain Lion 上,未能获取进程的Windows 列表

  显示原文与译文双语对照的内容
63 2

我正在尝试访问来自沙盒启用的应用程序的Mac OS X ( Mountain Lion ) 中的进程的Windows 列表。 但是 AXUIElementCopyAttributeValue API的Error"kAXErrorCannotComplete" 失败。 如果禁用sandboxing沙箱""


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

if (app) {

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

}

Windows array 正在返回零。

你在这方面的帮助非常感激。

时间: 原作者:

57 1

尝试一下


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

然后过滤 array 以获得特定的应用程序的Windows

...