![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Нужна помощь!
Делаю программу, которая отслеживает сдвиг мыши. Т.е если сдвигаешь мышь влево, то программа нажимает на клавишу A, если вправо, то на D. Это нужно для управления смещением персонажа в игре. A-влево, D-вправо. Программа работает нормально, если проверять ее работоспособность в текстовом редакторе, однако при включенной игре программа не работает или работает некорректно. P.S работоспособность программы можно проверить на примере блокнота. Открыть блокнот, щелкнуть по полю ввода мышью и дальше просто смещать мышь и в блокнот будет вводиться направление смещения мыши. Однако такого не происходит при включенной игре( Как сделать чтобы при включенной игре происходила корректная работа программы? Код:
procedure TForm1.Timer1Timer(Sender: TObject); var foo,foo1: TPoint; vl,vp:integer; begin vl:=SpinEdit1.Value; vp:=SpinEdit2.Value; GetCursorPos(foo); sleep(1); GetCursorPos(foo1); if foo.X>foo1.x then keybd_event(Ord('A'), 0, 0, 0); sleep(vl); if foo.X<foo1.x then keybd_event(Ord('D'), 0, 0, 0); sleep(vp); end; |
#2
|
||||
|
||||
![]() Может быть поможет SendInput. А вообще игры часто через одно место клавиши проверяют.
Вдобавок некоторые игры фиксируют мышь и делают свою. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
![]() c SendInput не знаком(
Как его применить? |