Запретить показ окна другим приложением - PullRequest
1 голос
/ 29 декабря 2010

Я использую функцию ShowWindow в Windows, чтобы показать и скрыть определенные окна, которые не созданы моим собственным приложением. Использовать эту функцию просто, поскольку вам нужно только пропустить окно HWND и показать, скрыть ли его. Однако некоторые приложения заставляют его появляться снова.

Например, я могу скрыть окно Google Chrome. Однако при открытии веб-сайта в Windows появляется Chrome (это мой интернет-браузер по умолчанию), что означает, что скрытое окно Chrome снова отображается. Я хотел бы предотвратить это, поскольку все скрытые окна должны всегда оставаться скрытыми.

Желательно ли непрерывно передавать команду скрытия (скажем, 10 раз в секунду или около того), чтобы, возможно, показанные окна немедленно снова становились скрытыми, или есть функция для блокировки этих окон как скрытых?

Спасибо.

1 Ответ

3 голосов
/ 29 декабря 2010

Если есть определенное окно, которым вы хотите управлять, попытка многократно повторять команды скрытия не приведет к его обрезанию.

Лучшим вариантом будет найти целевое окно (FindWindow ), внедрите подключаемую библиотеку DLL в процесс ( SetWindowHookEx ) для подключения обработчика окна: затем в подключенном обработчике окна просмотрите и обработайте сообщение WM_WINDOWPOSCHANGING , чтобы применитьваши собственные положения окон и политики видимости.

Поскольку большинство кодовых путей, которые изменяют видимое состояние окна, в конечном итоге происходят через вызов SetWindowPos, и SetWindowPos всегда проверяет свои параметры через это сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...