Thema: Delphi Probleme mit EnumWindows

Einzelnen Beitrag anzeigen

Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#1

Probleme mit EnumWindows

  Alt 4. Nov 2005, 15:10
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;
Oliver Hanappi
  Mit Zitat antworten Zitat