У меня есть системный сервис, который запускает приложение, используя метод CreateProcessAsUser
,
Этот сервис использует олицетворение для запуска приложения в активном сеансе. Приложение запускается, как и должно быть, мне удалось сделать так, чтобы окно отображалось спереди с помощью:
SetWindowPos ( &this-> wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
Но я не знаю, что делать, чтобы приложение могло фокусироваться на клавиатуре. Даже если приложение находится сверху, пока пользователь не нажимает на окно, ввод с клавиатуры идет в приложение под моим приложением.
Пусть ваше приложение зарегистрирует (тщательно выбранный) HotKey через RegisterHotKey а затем имитировать ключ с помощью SendInput
В обработке WM_HOTKEY сообщение, вы должны быть в состоянии «украсть фокус».
Ременбер: Это ПЛОХОЙ чтобы украсть фокус, но я полностью понимаю «то, что просит мой клиент!» часть.
Других решений пока нет …