Obsługa Joysticka w Delphi do emulatorów

0

Witam
Po chwili grania w grę "RiverRide" na emulatorze Atari przy użyciu klawiatury uznałem ze Joystickiem było by ciekawie (jak za dawnych lat) .
W wiec napisałem program w Delphi 7 z użyciem Omegi do obsługi joysticka, a dokładnie Pada pod USB
Program odbiera dane przyciśniętych klawiszy i odpowiednio symulować naciskanie klawiszy na klawiaturze.. i tu powstał problem..
Jeżeli napisze krótki programik wysyłający klawisz z użyciem Timera:

 
procedure TForm1.Timer1Timer(Sender: TObject);
 begin
 
   keybd_event(VK_LEFT, 0, 0, 0);
 end;

i gdy okno emulatora atari jest aktywne to klawisz działa i samolocik skręca w lewo.
Natomiast mój program do obsługi joysticka nie działa gdy nie jest aktywny :/

 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  OmegaInput1.Joystick.Update;

 Label1.Caption:=OmegaInput1.Joystick.Name;  //wyswietlanie nazwy joysticka na formie
 
  if oisLeft in OmegaInput1.Joystick.States then
   begin
   Label3.Color:=clRED;                        //zmiana koloru tla gdy wcisnie sie przycisk na joyu
   keybd_event(VK_LEFT, 0, 0, 0);         // no i wysłanie klawisza
   end
    else
     begin
     Label3.Color:=clBtnFace;
     keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);
     end;


end;

Proszę o pomoc jak wykonać może Hook'a na joystick lub przerobić aplikacje żeby działała w tle? i wysyłała znaki do aktywnego okna?

0

Możesz spróbować wysyłać WM_KEYDOWN/UP. Ale jeśli okno nie obsługuje tych komunikatów to nie zadziała. Poza tym do wysyłania klawiszy używaj mojej metody, którą nie raz tu podawałem z modułem useful_winapi.pas. Co do hooka na joystick to nic nie podpowiem, bo nie mam doświadczenia. Może ktoś inny.

1 użytkowników online, w tym zalogowanych: 0, gości: 1