Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Эмулируем нажатие клавиши [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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо