Das sollte global funktionieren (aus vorhandenen sourcen zusammengesucht und ungetestet)
Delphi-Quellcode:
var text: PChar;
tmpint: Integer;
CursorPos: TPoint;
Lhwnd: Cardinal;
begin
GetCursorPos(CursorPos);
Lhwnd := WindowFromPoint(CursorPos);
tmpint := SendMessage(Lhwnd, WM_GETTEXTLENGTH, 0, 0) + 1;
getmem(text, tmpint);
SendMessage(Lhwnd, WM_GETTEXT, tmpint, Integer(Text));
Edit1.Text := String(text);
freemem(text);
Bei diesem Beispiel fehlt noch die Prüfung auf den Klassennamen wenn man nur auf Buttons reagieren möchte.
Diesen erhält man ganze einfach so:
Delphi-Quellcode:
var Classenname: Array[0..255] of Char;
begin
GetClassName(LHwnd, Classenname, 255);
Edit2.Text := String(Classenname);