Witam, jestem tu nowy.
W Delphi nie jestem orłem, ale znam go najlepiej ze wszystkich znanych mi języków.

Napisałem program, który ma mi posłużyć do kontrolowania gry Diablo.
Program ma podnosić przedmioty i atakować, pod warunkiem że takowa opcja
zostanie załączona.

A więc mam na formie labelki sygnalizujące aktualny stan uruchomionych funkcji,
timery i buttony aktywujące/deaktywujące.

Jak uruchomię programik, i grę, i aktywuję w programie wysyłanie nacisniec klawiszy,
to jak otworze okno chatu w grze, to owszem, wszystkie klawisze są wpisywane.

Moje pytanie, co mam zle napisane, ze gra nie rozpoznaje mi tego jako zwykle
nacisniecie klawisza tylko jak wpisany znaczek?
Tzn, w kazdym textboxie gry znaki są wpisywane, ale bez aktywnego textboxa
gra nie reaguje na nacisniecia wysylane przez program.

Bardzo prosze o pomoc.

Kod przedstawia się tak:

//timer1 ma funkcję podnoszenia przedmiotow/wysyla klawisz keyb_ementem 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
Timer1.Enabled:=true; 
end; 

procedure TForm1.Button2Click(Sender: TObject); 
begin 
Timer1.Enabled:=false; 
end; 

procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
keybd_event(VkKeyScan('z'), VkKeyScan('z'), 0, 0); 
keybd_event(VkKeyScan('z'), VkKeyScan('z'), KEYEVENTF_KEYUP, 0); 

end; 

////////timer2 ma funkcje znalezienia handlera okna i wyslanie tylko do niego 
////////nacisniecia tego samego klawisza co wyzej,chcialem wyprobowac 
////////ktory sposob wysylania klawiszy mi zadziala 

procedure TForm1.Button3Click(Sender: TObject); 
begin 
Timer2.Enabled:=true; 

end; 

procedure TForm1.Button4Click(Sender: TObject); 
begin 
Timer2.Enabled:=false; 
Label2.Caption:='Stan: zatrzymany!'; 
end; 

procedure TForm1.Timer2Timer(Sender: TObject); 
var 
  hdiablo: HWND; 
begin 
  hdiablo := FindWindow(nil, 'diablo'); 
  if hdiablo <> 0 then 
  begin 
    SendMessage(hdiablo, VKKeyScan('z'), 0, 0); 
   Label7.Caption:='handler znaleziony pomyślnie'; 
  end; 
end; 

//////timer3 ma funkcje wysylania nacisniecia klawisza odpowiadajacemu 
//////atakowi w grze 

procedure TForm1.Button5Click(Sender: TObject); 
begin 
timer3.Enabled:=true; 
end; 

procedure TForm1.Button6Click(Sender: TObject); 
begin 
timer3.Enabled:=false; 
    Label3.Caption:='Stan: zatrzymany!'; 
end; 

procedure TForm1.Timer3Timer(Sender: TObject); 
var 
  hdiablo: HWND; 
begin 
  hdiablo := FindWindow(nil, 'diablo'); 
  if hdiablo <> 0 then 
  begin 
    SendMessage(hdiablo, VK_SPACE, 0, 0); 
    Label3.Caption:='Stan: dziala!'; 
   Label8.Caption:='handler znaleziony pomyślnie'; 

  end; 
end;