Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.01.2023, 16:42
Shaft Shaft вне форума
Новичок
 
Регистрация: 15.05.2013
Сообщения: 74
Версия Delphi: 7/10.4
Репутация: 12
По умолчанию

Вангую, приложение это игра, поэтому она и не распознает твои SendMessage так как игры используют DirectInput

Цитата:
Сообщение от l2grom
весь интернет излазил но так и не нашел.
Да ну уж прям весь? На одном известном форуме в разделе посвященному Delphi есть мое сообщение от 19.08.2017 в котором я скинул человеку код для эмуляции нажатий в играх. Я просто скопирую его сюда, пусть тут тоже будет.

Клавиши(не все, тут только те что были нужны мне)
P.S. D0-D9 это цифры от 0 до 9 соответственно
Код:
{
DirectInputKey.A:=30;
DirectInputKey.B:=48;
DirectInputKey.C:=46;
DirectInputKey.D:=32;
DirectInputKey.E:=18;
DirectInputKey.F:=33;
DirectInputKey.G:=34;
DirectInputKey.H:=35;
DirectInputKey.I:=23;
DirectInputKey.J:=36;
DirectInputKey.K:=37;
DirectInputKey.L:=38;
DirectInputKey.M:=50;
DirectInputKey.N:=49;
DirectInputKey.O:=24;
DirectInputKey.P:=25;
DirectInputKey.Q:=16;
DirectInputKey.R:=19;
DirectInputKey.S:=31;
DirectInputKey.T:=20;
DirectInputKey.U:=22;
DirectInputKey.V:=47;
DirectInputKey.W:=17;
DirectInputKey.X:=45;
DirectInputKey.Y:=21;
DirectInputKey.Z:=44;
DirectInputKey.D0:=11;
DirectInputKey.D1:=2;
DirectInputKey.D2:=3;
DirectInputKey.D3:=4;
DirectInputKey.D4:=5;
DirectInputKey.D5:=6;
DirectInputKey.D6:=7;
DirectInputKey.D7:=8;
DirectInputKey.D8:=9;
DirectInputKey.D9:=10;
}
const KEYEVENTF_SCANCODE:Cardinal=8;

//key:Word - клавиша
//t:Integer - время в миллисекундах, сколько клавишу держать нажатой. 
procedure SendKey(key:Word; t:Integer);
var
  Inp:TInput;
begin
  Inp.Itype:=1;
  Inp.ki.wScan:=key;
  Inp.ki.dwFlags:=KEYEVENTF_SCANCODE;
  SendInput(2, Inp, SizeOf(Inp));
  Sleep(t);
  Inp.ki.dwFlags:=KEYEVENTF_KEYUP;
  SendInput(2, Inp, SizeOf(Inp));
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter