//пример с таймером
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//Делаем окно рф-ки активным:
sendmessage (findwindow(nil,'RF Online' ,wm_activate,1,1); // Работает только если окно не свернуто
//Жмем кнопку F1 в окно рф-ки
EmulateKey(findwindow(nil,'RF Online'), vk_f1 );
end;
Я конечно же использовал процедуру EmulateKey так же как и ты написал, окно делал активным через SetForegroundWindow. Попробовал так как ты посоветовал, через sendmessage.
К сожалению результат один и тот же, окно активным становится, но имитация нажатия клавиши не происходит.
Есть у меня ощущение что это каким-то образом связано с Win7 x64. Как вы думаете?
Во всех случаях окно искал по названию "RF Online", также использовал SetForegroundWindow
Язык, понятное дело, Delphi. Операционная система: Win7 x64.
Ни один из способов не приносит результата, т.е. нажатие не имитируется.
Поможите кто чем может, люды добрые)
Проблема заключается в том, что ты шлёшь не в то окно нажатия. Окно RF Online на самом деле - это окно фроста (оно грузится первым). Поэтому в данном случае стандартными методами (поиск по заголовку) ты hwnd не получишь.
Я делаю так:
Аттачу дллку, перехватываю обработчик сообщений и в нём уже при клике правой мышкой (а клик этот будет по любому в нужном для нас окне), сохраняю нужный hwnd.
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.