Es gruselt mich. Habt ihr mal im
MSDN geschaut wie die Parameter für wm_gettext lauten? Anstelle des Pointers auf den Buffer übergebt Ihr 0, und anstelle der maximal möglichen Länge des Buffers übergebt ihr die Adresse von Memo1.text.
Da "Text" ein Property ist geht derdirekte zugriff gar nicht sondern es muss auf eine zwischenvariable
wm_gettext
Ihr könnt aber auch gleich die Funktion GetWindowText nehmen, da haben die Parameter schon die richtigen Namen so das es dort einleuchtender sein sollte was ihr bisher falsch gemacht habt.
[Edit]
Delphi-Quellcode:
var lBuffer:
String;
lSize : Integer;
begin
SetLength(lBuffer, 255);
lSize := GetWindowText(
Handle, @lBuffer[1], Length(lBuffer));
Memo1.Text := copy(lBuffer, 1, lSize);
wenn du unbedingt SendMessage verwenden willst dann so:
Delphi-Quellcode:
var lBuffer:
String;
lSize : Integer;
begin
SetLength(lBuffer, 255);
lSize := SendMessage(
Handle, WM_GETTEXT, Length(lBuffer), Integer(@lBuffer[1]));
Memo1.Text := copy(lBuffer, 1, lSize);
[/Edit]