Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi 2. Fenster finden (https://www.delphipraxis.net/56243-2-fenster-finden.html)

idontwantaname 2. Nov 2005 18:49


2. Fenster finden
 
Hallo :hi:

Ich hab ein Problem und ich finde einfach keine Lösung :(
Ich habe eine fremde Anwendung, die 2 mal gestartet ist. Nun brauche ich die Handles beider Fenster. Mit FindWindow bekommt man ja leider nur ein Handle. Wie kann ich das 2. bekommen ??

mfg idontwantaname

marabu 2. Nov 2005 19:40

Re: 2. Fenster finden
 
Hallo Oliver,

du könntest mit EnumWindows() arbeiten und bei jedem Fenster prüfen, ob es eines von den beiden ist, die du suchst.

Grüße vom marabu

idontwantaname 2. Nov 2005 21:13

Re: 2. Fenster finden
 
Okay, danke,
ich werde das mal versuchen

idontwantaname 3. Nov 2005 14:59

Re: 2. Fenster finden
 
So, ich hab das jetzt versucht, nur leider will es einfach nicht funktionieren :cry:
Hier mein Code:
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;


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz