Уделить внимание окну, запущенному из системного сервиса с помощью CreateProcessAsUser

У меня есть системный сервис, который запускает приложение, используя метод CreateProcessAsUser,

Этот сервис использует олицетворение для запуска приложения в активном сеансе. Приложение запускается, как и должно быть, мне удалось сделать так, чтобы окно отображалось спереди с помощью:

SetWindowPos ( &this-> wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);

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

1

Решение

Пусть ваше приложение зарегистрирует (тщательно выбранный) HotKey через RegisterHotKey а затем имитировать ключ с помощью SendInput

В обработке WM_HOTKEY сообщение, вы должны быть в состоянии «украсть фокус».

Ременбер: Это ПЛОХОЙ чтобы украсть фокус, но я полностью понимаю «то, что просит мой клиент!» часть.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]