Установить фокус системы на мое приложение - PullRequest
3 голосов
/ 27 апреля 2009

У меня есть приложение, которое будет работать в основном в фоновом режиме. Я хочу, чтобы определенные системные события, которые он обрабатывает, заставляли приложение фокусироваться на приложении переднего плана, что бы это ни было. Но UIElement.Focus (), кажется, только устанавливает фокус в приложении WPF. То есть, если приложение WPF уже имеет фокус в целом, тогда Focus () устанавливает фокус на правильный элемент управления. Но мне нужно украсть фокус из другого приложения и поместить его в мое приложение. Как я могу это сделать?

Я не хочу системный модальный диалог. То есть после того, как окно перехватывает фокус, у пользователя должна быть возможность немедленно переключиться на другое приложение, не закрывая окно моего приложения.

Возможно, приложение уже было в восстановленном, свернутом или даже в состоянии «свернуть в трей», когда ему нужно украсть системный фокус. Поэтому предполагать, что оно минимизировано, и кража фокуса при восстановлении окна недопустима.

1 Ответ

6 голосов
/ 27 апреля 2009

Если вы не возражаете против вызова som p /, функция SetForegroundWindow может помочь вам:
http://pinvoke.net/default.aspx/user32/SetForegroundWindow.html

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