Hi !!
Anlässlich
dieses Threads verwende ich jetzt EnumWindows bzw. ich habe es versucht ^^
Ich hab den Code eigentlich eh schon im anderen Thread, aber es ist ja im Prinzip eine neue Frage ... also der neue Thread
Seltsamerweise bekomme ich eine
AV wenn ich 2 String vergleichen will:
Delphi-Quellcode:
type
THandleArray =
array of THandle;
function FindAllWindows(
const WindowCaption:
String): THandleArray;
var
Res: THandleArray;
function _EnumWindowProc(_hwnd: HWND; _lparam: LPARAM): Boolean;
// stdcall; braucht man das ?? es geht mit und ohne nicht
var
Title:
String;
Len: Integer;
begin
if(_hwnd = 0)
then
begin
Result := False;
Exit;
end;
Len := GetWindowTextLength(_hwnd)+1;
SetLength(Title, Len);
GetWindowText(_hwnd, PChar(Title), Len);
Title := Trim(Title);
if (Title = WindowCaption)
then // Hier kommt eine AV
begin
SetLength(Res, Length(Res)+1);
Res[Length(Res)-1] := _hwnd;
end;
end;
begin
SetLength(Res, 0);
EnumWindows(@_EnumWindowProc, 0);
// was muss man als 2. Parameter übergeben ??
Result := Res;
end;