![]() |
Re: Tasten senden problem
ich hab doch weiter oben nen screenshot mit der exception angehängt.
|
Re: Tasten senden problem
super, da steht, das dein Programm ne Macke hat. Und? WO?
In welcher Zeile? Bei welchem Statement? :spin: Los! Verrate es uns! Sofort! :roteyes: |
Re: Tasten senden problem
hab euch doch nen Bild mit dem error + Zeile im Anhang !!
|
Re: Tasten senden problem
Da einige den Screenshot zu übersehen scheinen schreib ich es euch nochmals auf:
Zitat:
ich brauch eure hilfe wirklich ;-) |
Re: Tasten senden problem
:gruebel:
Delphi-Quellcode:
Muss das nicht so heissen ?
FindWindow(nil,'GTA: San Andreas');
Delphi-Quellcode:
FindWindow('GTA: San Andreas', nil);
|
Re: Tasten senden problem
Ich habe einen schwarzen Block genau da, wo die Zeilen sind...
Versuche es mit Fehlereingrenzung: 1. Schicke die Zeichen an ein anderes Programm, z.B. ein eigenes (1x Form, 1xEditfeld, fokusiert) 2. Schicke nur ein Zeichen. 3. Stimmt das Handle? ... Danach sehen wir weiter. @turboPascal: Du scheinst (3) schon beantwortet zu haben :zwinker: |
Re: Tasten senden problem
so. habe meinen Code mal etwas umgeschrieben.
Delphi-Quellcode:
keine Fehler, keine abgesstürtzen progs mehr. aber funtkionieren tuts au net :-(
procedure TForm1.Button1Click(Sender: TObject);
var hOE: hWnd; s : string; i : integer; begin hOE:=FindWindow(nil,'Unbenannt - Editor');//Finde das Fenster mit Notepad if hOE = 0 then ShowMessage('Nix gefunden'); s := 'test'; for i := 1 to Length(s) do SendMessage(hOE, WM_CHAR, Word(s[i]), 0); //send Keys end; |
Re: Tasten senden problem
Ein Beispiel um Text ins Notepat einzufügen über SendMessage, FindWindow, FindWindowEx
Delphi-Quellcode:
also sollte es auch so eine Reihe von Chars an dein Prg. senden
procedure TForm1.ButtonXClick...
const mystring: string = 'DerSuperduperBlaBlaTextStringdenmaneinfuegenwill oder so :-)'; var wh: HWND; i: Integer; begin wh := FindWindow('Notepad', nil); //Notepad window finden if wh <> 0 then begin wh := FindWindowEx(wh, 0, 'Edit', nil); // das edit feld im Notepad for i := 1 to length(mystring) do begin // Word() oder Ord() - Hauptsache aus z.B. 'A' wird 65 :-) SendMessage(wh, WM_CHAR, Word(mystring[i]), 0); end; end else ShowMessage('Sorry, Window not found, start the Notepad pleace ?'); end; (wenn das Windowhandle bzw. Fenster/Programmname stimmt):
Delphi-Quellcode:
procedure ...
const mystring: string = 'DerSuperduperBlaBlaCheat'; var wh: HWND; i: Integer; begin wh := FindWindow('GTA: ...', nil); // Window finden Windows.SetFocus(wh); // Focus auf das empfangende Prg. damit es auch Keys verarbeitet ? if wh <> 0 then begin for i := 1 to length(mystring) do begin // Word() oder Ord() - Hauptsache aus z.B. 'A' wird 65 :-) SendMessage(wh, WM_CHAR, Word(mystring[i]), 0); end; Windows.SetFocus(Handle); // Focus auf dein Prg. end else ShowMessage('Sorry, Window not found, start the Notepad pleace ?'); end; |
Re: Tasten senden problem
Ersterer Code funktioniert. letzerer aber nicht !
genau das ist mein Problem, denn ich habe bei GTA ja kein Editfeld ^^ |
Re: Tasten senden problem
:gruebel: Wenn das Windowshandle/Fenstername stimmt?
Du solltest es einmal so Versuchen:
Delphi-Quellcode:
also einen "echten" Testendruck simulieren (k.A. wie GTA die Tasten Events ausliest).
// an Stelle von
SendMessage(wh, WM_CHAR, Word(mystring[i]), 0); //das: SendMessage(wh, WM_KEYDOWN, Word(mystring[i]), 0); SendMessage(wh, WM_KEYUP, Word(mystring[i]), 0); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz