2010-11-24 2 views
1

Я делаю плагин для браузеров (Safari, Chrome, Firefox) в MacOSXИспользования Accessibility API, чтобы узнать размер и происхождение окна браузера в плагине NPAPI

То, что я пытаюсь сделать, это используя 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 является kAXErrorCannotComplete в AXError.h

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

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

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

+1

Зачем вам нужно происхождение и размер окна браузера, что вы хотите с ними делать? – Yuji 2010-11-25 04:43:26

+0

Я хочу покрыть браузер своим окном, у которого есть мой плагин. Поэтому пользователь не может распознать, что есть два окна. – neochoon 2010-11-29 08:56:23

ответ

1

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