Okay, das klingt logisch - ich habe es auch probiert, aber ich bekomme einfach nicht den Text zurück:
So habe ich es eingebaut:
Code:
function ICQGetOwnerMessage: String;
function FindMessageWindow(const Start: HWND): HWND;
var
H: HWND;
S: PChar;
begin
Result := 0;
H := Start;
S := StrAlloc(256);
while H > 0 do begin
GetWindowText(H, S, 256);
if (Pos('Change', S) > 0)
and (Pos('Confirm', S) > 0)
and (Pos('Message', S) > 0) then begin
Result := H;
Exit;
end;
H := GetNextWindow(H, GW_HWNDNEXT);
end;
StrDispose(S);
end;
var
H, I: HWND;
buffer: array[0..200] of char;
begin
Result := '';
H := FindMessageWindow(GetForeGroundWindow);
if H = 0 then
Exit;
SetForeGroundWindow(H);
I := GetNextDlgTabItem(H, 0, False);
I := GetNextDlgTabItem(H, I, False);
if I <> 0 then begin
SendMessage(I, WM_GETTEXT, sizeof(buffer), Integer(@buffer));
Result := Buffer;
end;
end;
In die SendMessage-Schleife geht er erst garnicht rein, deswegen kann das Result auch nicht richtig angezeigt werden - ist klar.
Was genau muss ich verändern?
Gruß Yheeky