Цитата:
Сообщение от trancformator
Пытаюсь написать программку, для себя, ориентированную на клиент RF которая бы могла имитировать нажатия тех или иных клавиш на клавиатуре.
Пробовал имитировать нажатия 2-я известными мне способами:
1. через PostMessage
2. через keybd_event
и третьим, найденным в интернете:
через процедуру написанную на ассемблере
procedure EmulateKey(Wnd: HWND; VKey: Integer);
asm
push 0
push edx
push 0101H //WM_KEYUP
push eax
push 0
push edx
push 0100H //WM_KEYDOWN
push eax
call PostMessage
call PostMessage
end;
Во всех случаях окно искал по названию "RF Online", также использовал SetForegroundWindow
Язык, понятное дело, Delphi. Операционная система: Win7 x64.
Ни один из способов не приносит результата, т.е. нажатие не имитируется.
Поможите кто чем может, люды добрые)
|
Проблема заключается в том, что ты шлёшь не в то окно нажатия. Окно RF Online на самом деле - это окно фроста (оно грузится первым). Поэтому в данном случае стандартными методами (поиск по заголовку) ты hwnd не получишь.
Я делаю так:
Аттачу дллку, перехватываю обработчик сообщений и в нём уже при клике правой мышкой (а клик этот будет по любому в нужном для нас окне), сохраняю нужный hwnd.