Hey, danke
Beim Debuggen bin ich dann eh draufgekommen, dass er irgendwie nicht auf WindowCaption selbst zugreifen kann ...
Ich werds gleich mal testen
[edit] so, ich habs mir jetzt angeschaut ... und hier eine funktionierende Version
Delphi-Quellcode:
type THandleArray = array of HWND;
function FindAllWindows(const WindowCaption: String): THandleArray;
type
PParam = ^TParam;
TParam = record
WindowCaption: String;
Res: THandleArray;
end;
var
Rec: TParam;
function _EnumProc(_hWnd: HWND; _LParam: LPARAM): LongBool; stdcall;
var
cTitle: array[0..1023] of Char;
begin
with PParam(_LParam)^ do
begin
GetWindowText(_hWnd, cTitle, SizeOf(cTitle));
if (CompareText(cTitle, WindowCaption) = 0) then
begin
SetLength(Res, Length(Res)+1);
Res[Length(Res)-1] := _hWnd;
end;
Result := True;
end;
end;
begin
Rec.WindowCaption := WindowCaption;
SetLength(Rec.Res, 0);
EnumWindows(@_EnumProc, Integer(@Rec)); // hier hat das Integer gefehlt
Result := Rec.Res;
end;