Martin91 - So 17.06.07 14:15
Titel: eingabefenster eines anderen programms schreiben/lesen.
Hi,
ich möchte in ein eingabefenster eines anderen programmes lesen und schreiben.
Könnte mir jemand ein paar codezeilen posten?
MfG Martin
Moderiert von
Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 17.06.2007 um 18:32
fuba - Fr 22.06.07 01:58
als erstes benötigst du "FindWindow"
diesen befel findest du 100% im forum.
Dann such mal nach "SendMessage" findest du auch im forum
danach wie schon erwähnt wurde "WM_GETTEXT" und / oder "WM_SETTEXT".
wobei du bei WM_SETTEXT warscheinlich am anfang probleme haben wirst, ging mir auch so ;)
aber hier mal 2 kleine Beispiele:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.Button1Click(Sender: TObject); var wnd: HWND; begin SendMessage(wnd, WM_SETTEXT, 0, integer(pchar('Hier kommt der gewünschte Text rein'))); end; |
und WM_GETTEXT ist auch nicht so ohne ^_^
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button1Click(Sender: TObject); var wnd: HWND; Buffer: PChar; len: Integer; s: string; begin len := SendMessage(wnd, WM_GETTEXTLENGTH, 0, 0)+1; GetMem(Buffer, len); try ZeroMemory(Buffer, len); SendMessage(wnd, WM_GETTEXT, len, lParam(Buffer)); s:=Buffer; finally FreeMem(Buffer, len); end; end; |
die variable "s" ist hier der text der im handle "wnd" steht.
aber um das umsetzen zu können such dir erstmal "FindWindow" und versuch dich damit mal.
Ohne "FindWindow" wirst nicht weiterkommen, aber das erklär ich hier jetzt nicht, hab stress und steht auch genug im forum ^_^