![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Эмулируем нажатие клавиши [D7, WinXP]
Verden © (2009-07-22 11:28:00)Вообщем, нужно эмулировать нажатие клавиши E для пропуска хода в одной по шаговой игре?
находил примеры для капслока, но тут они отказывается работать...
Юрий Зотов (2009-07-22 15:40:00) [1]Если окно кнопки - первая среди дочерних, то:
GetWindow(GetForegroundWindow, GW_CHILD);
или
FindWindowEx(GetForegroundWindow, 0, 'BUTTON', 'OK');
Если же не первое, то сначала находим первое, а потом пляшем от него. В MSDN смотрите, там все это есть.
Verden (2009-07-22 15:10:00) [2]ух... действительно кнопке =) но честно говоря вот в этих функциях я запутался с аргументами... что в них точно подставлять? можно пример привести?
Юрий Зотов (2009-07-22 13:24:00) [3]Похоже, отправлять надо КНОПКЕ, а не top-level окну.
FindWindowEx или GetWindow
Verden (2009-07-22 13:16:00) [4]Sendmessage(GetForegroundWindow, WM_KEYDOWN,VK_RETURN,0);
SendMessage(GetForegroundWindow,WM_KEYUP,VK_RETURN,1);
так? все равно не удаеться отправить Enter...
Юрий Зотов (2009-07-22 12:59:00) [5]GetForegroundWindow
SendMessage
Verden (2009-07-22 12:50:00) [6]с этим я разобрался..
вопрос второй - как найти активное на сей момент окно и заслать туда нажатие клавиши? там иногда сообщения всплывают...
Юрий Зотов (2009-07-22 11:49:00) [7]Посмотрите keybd_event в справке по WinAPI.