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
 
#5

Re: Probleme mit EnumWindows

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