как отправить нажатия клавиш только в одну программу?


Мне было трудно найти что-нибудь полезное, но я нашел кого-то, кто спросил, как это сделать, (Как отправить нажатия клавиш в окно?)

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

keybd_event('a', NULL, NULL, NULL);  
keybd_event('a', NULL, KEYEVENTF_KEYUP, NULL); 

Как я мог это сделать?

1 2

1 ответ:

Звучит так, как будто вы пытаетесь заставить окно сфокусироваться перед отправкой ключей. Посмотрите на FindWindow и еще SetForegroundWindow.

Что-то вроде этого должно сработать:

SetForegroundWindow(FindWindow(0,"Untitled - Notepad"));
keybd_event(....);

Если вместо этого вы говорите об изменении текста окна напрямую, посмотрите на GetWindow для навигации по дереву окон и SendMessage с собой WM_SETTEXT параметр.