#plugins #npapi
#Плагины #npapi
Вопрос:
Есть ли способ использовать NPAPI, чтобы определить, свернут ли браузер.
Ответ №1:
Не напрямую. В зависимости от того, какую платформу вы хотите (вы действительно должны указывать подобные вещи), может быть способ.
Например, в Windows вы могли бы получить HWND браузера (NPN_GetValue с помощью NPNVnetscapeWindow), а затем проверить состояние этого окна с помощью вызовов Windows API.
На Mac вам будет сложнее с этим; возможно, вы могли бы интуитивно понять, используя информацию об ограничении, переданную в NPP_SetWindow, но это не говорит вам, свернут ли браузер или плагин (или даже вкладка) просто не виден. Опять же, вам нужно было бы попытаться найти способ использовать системные вызовы, чтобы вернуться к реальному окну, но на Mac это будет очень нетривиально.
Linux Я не уверен; вы получаете GtkSocket, если используете XEmbed (единственное, что поддерживает Chromium), и я понятия не имею, можете ли вы использовать это, чтобы вернуться туда, где вам нужно быть, чтобы проверить свернутое состояние.
Итак, короткий ответ — нет; NPAPI не предоставляет ничего подобного. Вам просто нужно попытаться найти что-то, что он предоставляет, что дает вам достаточно информации, чтобы взломать его.
Ответ №2:
Поскольку я использовал основной слой анимации. Я ввел таймер, который проверяет, как часто вызывается обратный вызов candraw. Если разница во времени между двумя обратными вызовами больше секунды, я предполагаю, что либо мой плагин свернут, либо скрыт.