1

我一直在为 MacOSX 中的浏览器(Safari、Chrome、firefox)制作插件

我尝试做的是使用 Accessibility API 在我的 NPAPI 插件中找出浏览器窗口的大小和来源。

在 Chrome 中,我可以得到我想要的,但在 Safari 中,得到一个错误代码-25204

 AXUIElementRef app = AXUIElementCreateApplication( browserProcessID );

 AXUIElementRef frontWindow = NULL;
 AXError err = AXUIElementCopyAttributeValue(
                       app, kAXMainWindowAttribute, (CFTypeRef *)&frontWindow );

 if ( err != kAXErrorSuccess ) {
      NSLog(@"%d", err);
      return -1;
 }

-25204AXError.h中的 kAXErrorCannotComplete

但我不知道为什么。

欢迎任何意见。

提前致谢。

4

1 回答 1

1

鉴于您在此站点上的其他问题,我猜您实际上想要完成的是找出插件在屏幕上的位置。您需要做的就是使用 NPN_ConvertPoint 来查找插件的 (0,0) 在屏幕坐标中的位置。这比尝试使用可访问性要容易得多,也不会那么脆弱(实际上会给您正确的答案;使用可访问性,您将不得不对窗口工具栏的高度做出假设,这些高度是可变的)。

于 2010-11-28T14:12:55.550 回答