Подтвердить что ты не робот

Как я могу предотвратить кражу фокуса в Windows?

Быстрый поиск Google решений Фокус-кража в Windows показывает две основные категории результатов:

  • Люди, предлагающие неполные решения, связанные с Записи реестра ForegroundLockTimeout (или TweakUI, который, я считаю, просто изменяет вышеупомянутую запись в реестре), что не очень эффективно.
  • Непрерывно hordes пользователей Windows жалобы о it.

Это особенно раздражает два распространенных сценария:

  • Что-то заставляет программу всплывать диалоговое окно в фоновом режиме, в то время как полноэкранное приложение сфокусировано, что приводит к минимизации приложения в полноэкранном режиме.

  • Окно крадет фокус во время ввода, краду все ваши нажатия клавиш. Если вам придётся нажать "Пробел", "Ввести" или вызвать комбинацию клавиш (например, "Да для Да" ), это может привести к совершенно нежелательным результатам.

Какие креативные решения могут быть применены для решения этой проблемы для обоих или обоих этих сценариев?

4b9b3361

Ответ 1

У меня есть одно предложение о том, как это можно решить, но я не могу полностью реализовать его, так как мне не хватает знаний.

Изменение фокуса между окнами должно инициироваться программой-нарушителем, вызывающей функцию Windows API, наиболее вероятно находящуюся в shell32 или user32. Некоторые прогаммы, такие как Adobe Photoshop, делают вызов несколько раз (по крайней мере дважды), чтобы заставить себя запускать пользователя. Идея состоит в том, чтобы подключиться к этой функции API (если это возможно) и проверить, откуда происходит вызов. Если это не из explorer.exe(т.е. Alt + Tabbing или щелчок значка на панели задач), то вызов должен быть заблокирован указанным крюком.