Мне нужно поставить окно на передний план, используя его имя, например «изображения». СПоложить приложение на передний план
findWindowW(NULL, stringName)
я получаю дескриптор процесса (HWND
). Затем с
SetForegroundWindow(windowHandle);
Я думаю, что я положил его на первый план автоматически, но я должен нажать «Enter». Я что-то делаю неправильно или есть другой способ сделать это? Я также могу использовать PID процесса.
Моя конечная цель - отправить быстрые клавиши, такие как CTRL + V, в процесс после того, как поместить его на передний план. Спасибо.
спасибо. Я не пробовал, но, глядя на MSDN, я думаю, что понял. Вот моя интерпретация: сначала держите дескриптор в окне переднего плана и в окне corrent; то с AttachThreadInput() процесс совместно использует входной буфер (не так уверен в этом ...), чем я установил другое окно сверху и «разделил» два процесса.
Я не настолько уверен в этом, если что-то совершенно не так, пожалуйста, укажите его мне, спасибо! –
Ты почти прав. Используя 'AttachThreadInput', два разных потока могут делиться своими входными состояниями, такими как клавиатура, мышь и т. Д. Ваш дескриптор окна может получить ** правильное условие ** как вызов функции« AttatchThreadInput »с указанием ** TRUE ** для второго параметра. – hyun
Хорошо. Я запускаю этот метод с помощью дескриптора окна. AttachThreadInput возвращает значение больше 0, поэтому он делает то, что находится в if (я не знаю, как assert работает только с параметром ..). Что делать, если я хочу отправить комбинацию клавиш во второе окно? Даже без изменения фокус. –