Thema: Delphi Keybinder - GTA SA

Einzelnen Beitrag anzeigen

Millencolin

Registriert seit: 12. Feb 2010
11 Beiträge
 
#1

Keybinder - GTA SA

  Alt 12. Feb 2010, 12:56
Erstmal einen schönen guten Tag!
Ich versuche derzeit folgendes Programm nachzuprogrammieren: Keybinder

Grundgedanke: Bei GTA SanAndreas gibt es einen inoffiziellen Multiplayer Modus. Viele Aktionen laufen über Befehle ab wie zum Beispiel "/enter" zum betreten eines bestimmten Gebäudes. Über "t" öffnet man ein Feld in der man diese Befehle eingeben kann. Um die Schreibarbeit zu minimieren gibt es Keybinder(s.o) die für mich den tastendruck "t" simulieren -> den eingespeicherten String an das durch "t" geöffnete Feld übergeben -> Enter-Taste simulieren um zu bestätigen

Bisher nutzte ich GetSysFocus um das Handle des aktuellen Fensters zu erhalten.

Delphi-Quellcode:
function TForm1.GetSysFocus: HWND;
var
  ThreadID, CurrThrId: cardinal;
begin
  Result := 0;
  ThreadID := GetWindowThreadProcessID(GetForegroundWindow, nil);
  CurrThrId := GetCurrentThreadId;
  if ThreadID <> CurrThrId then
  begin
    if AttachThreadInput(ThreadID, CurrThrId, true) then
    begin
      Result := GetFocus;
      AttachThreadInput(ThreadID, CurrThrId, false);
    end;
  end
  else
    Result := GetFocus;
end;
Jedoch erreiche ich dadurch nicht die DirectX Oberfläche sondern verändere lediglich die Caption des Fensters("GTA SA" wird dann zB zu "/enter".
Unter Windows klappt GetSysFocus einwandfrei. Wie erreiche ich es nun dass der String dem EingabeFeld in GTA übergeben wird?
  Mit Zitat antworten Zitat