Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi alle handles und captions herausfinden (https://www.delphipraxis.net/21971-alle-handles-und-captions-herausfinden.html)

XeRo 10. Mai 2004 20:43


alle handles und captions herausfinden
 
Also...ich will von allen fenstern die handles bekommen und dann die titel dieser fenster in einem Memo anzeigen lassen... aber warum funktioniert mein code nicht?

Delphi-Quellcode:
function GetWindow (Handle: HWND; LParam: longint): bool; stdcall;
begin
  Result := true;
  WindowList.Add (Pointer(Handle));
end;

procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
 hWindowHandle: HWND;
 Buffer: array [0..255] of char;
 sTitle: String;
begin
 WindowList:= TList.Create;
 EnumWindows(@GetWindow, 0);
 for i := 0 to WindowList.Count - 1 do
   begin
     hWindowHandle:= HWND(WindowList[i]);
     if IsWindowVisible (hWindowHandle) then
      begin
       GetWindowText(hWindowHandle, Buffer, SizeOf(Buffer) - 1);
       if Buffer[0] <> #0 then
        begin
         sTitle:= Copy(StrPas(Buffer),1,22);
        end;
       memo1.Lines.Add(stitle);
      end;
    end;
end;
:wiejetzt:

Luckie 10. Mai 2004 20:49

Re: alle handles und captions herausfinden
 
Das schon probiert: http://www.luckie-online.de/Ablage/D...umWindows.html

fiasko 10. Mai 2004 20:50

Re: alle handles und captions herausfinden
 
Du mußt noch ein EnumChildWindows über die ganzen Handles (rekursiv) machen, damit du auch die Labels bekommst.

Luckie 10. Mai 2004 20:52

Re: alle handles und captions herausfinden
 
Wieso rekursiv? davon steht nichts in seinem Posting. Und wenn dannmüsste er EnumChildWindows benutzten.

fiasko 10. Mai 2004 20:56

Re: alle handles und captions herausfinden
 
Arg, hab nur den Topic gelesen :wall:

aber dann brauch er doch auch kein EnumChildWindows... alle fenster finden macht es doch schon - also wo ist da ein Problem?!

Luckie 10. Mai 2004 20:58

Re: alle handles und captions herausfinden
 
Dass sein Code nicht funktioniert, was auch immer das heißen mag, darüber schweigt er sich ja leider aus. :roll:

Im übrigen Funktioniert er bei mir:
Delphi-Quellcode:
var
  WindowList: TList;

function GetWindow(Handle: HWND; LParam: longint): bool; stdcall;
begin
  Result := true;
  WindowList.Add(Pointer(Handle));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  hWindowHandle: HWND;
  Buffer: array[0..255] of char;
  sTitle: string;
begin
  WindowList := TList.Create;
  EnumWindows(@GetWindow, 0);
  for i := 0 to WindowList.Count - 1 do
  begin
    hWindowHandle := HWND(WindowList[i]);
    if IsWindowVisible(hWindowHandle) then
    begin
      GetWindowText(hWindowHandle, Buffer, SizeOf(Buffer) - 1);
      if Buffer[0] <> #0 then
      begin
        sTitle := Copy(StrPas(Buffer), 1, 22);
      end;
      Form1.memo1.Lines.Add(stitle);
    end;
  end;
end;
:roll:

XeRo 10. Mai 2004 21:23

Re: alle handles und captions herausfinden
 
Zitat:

Zitat von Luckie
Im übrigen Funktioniert er bei mir

Bei mir plötzlich auch...hab in der Zwischenzeit nichts geändert, auser dass ich den pc neu gestartet hab ( :gruebel: obs daran liegt?)
Vorher war bei mir nie was im Memo1 drin und jetzt schon... :roll: komisch...aber egal

DANKE @all


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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