Использование Accessibility API для определения размера и происхождения окна браузера в плагине NPAPI - PullRequest
1 голос
/ 24 ноября 2010

Я делаю плагин для браузеров (Safari, Chrome, firefox) в MacOSX

Я пытаюсь использовать 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;
 }

-25204 is kAXErrorCannotComplete в AXError.h

Но я не знаю почему.

Любые комментарии будут приветствоваться.

Заранее спасибо.

1 Ответ

1 голос
/ 28 ноября 2010

Учитывая ваш другой вопрос на этом сайте, я думаю, что вы на самом деле пытаетесь сделать, это выяснить, где плагин на экране. Все, что вам нужно для этого, это использовать NPN_ConvertPoint, чтобы найти, где плагин (0,0) находится в экранных координатах. Это будет намного проще и гораздо менее хрупким, чем попытка использовать доступность (и фактически даст вам правильный ответ; с доступностью вам придется делать предположения относительно высоты панели инструментов окна, которая является переменной).

...