![]() |
Fenster Listen
Hallo,
ich benutze den folgenden Code um mir in einer ListBOx alle aktiven Fenster anzeigen zu lassen... der Code ist hier aus dem Forum und müsste eig funktionieren... nur ich bekomme beim Funktionsaufru die Meldung Inkompatibble Typen 'HWND' und 'Pointer'. Kann mir da einer helfen?
Delphi-Quellcode:
function EnumWindowsProc (Wnd: HWND; LParam: LPARAM): BOOL; stdcall;
var Bezeichnung : Array[0..200] of Char; begin if (IsWindowVisible(Wnd) or IsIconic(wnd)) and ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or (GetWindowLong(Wnd, GWL_HWNDPARENT) = GetDesktopWindow)) and (GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW = 0) then begin GetWindowText(Wnd, Bezeichnung, 256); Form1.listbox1.Items.Add(Bezeichnung); end; end; procedure TForm1.aktualisieren1Click(Sender: TObject); begin ListBox1.Clear; EnumWindows(@EnumWindowsProc, 1); end; |
Re: Fenster Listen
Schau dir mal die HIlfe genauer an !!
Code:
Return Value
To continue enumeration, the callback function must return TRUE; to stop enumeration, it must return FALSE. |
Re: Fenster Listen
Wo (in welcher Zeile) bekommst du denn diese Fehlermeldung?
PS:
Delphi-Quellcode:
Length(Bezeichnung) = 210
var Bezeichnung : Array[0..200] of Char;
GetWindowText(Wnd, Bezeichnung, 256); MaxLength für GetWindowText = 256 fällt dir da was auf? |
Re: Fenster Listen
Zitat:
Delphi-Quellcode:
EnumWindows(@EnumWindowsProc, 1);
|
Re: Fenster Listen
Wo kommt denn die eins beim Funktionsaufruf her?
Guck dir das mal an: ![]() |
Re: Fenster Listen
grad getestet und ich bekomm keine Fehlermeldung :gruebel:
und wie gesagt:
Delphi-Quellcode:
@Luckie: die "1" ist doch egal ... da er LParam eh nicht verwendet
GetWindowText(Wnd, Bezeichnung, 201);
// bzw. GetWindowText(Wnd, Bezeichnung, Length(Bezeichnung)); [add]
Delphi-Quellcode:
function EnumWindowsProc (Wnd: HWND; LParam: LPARAM): BOOL; stdcall;
var Bezeichnung : Array[0..200] of Char; begin if (IsWindowVisible(Wnd) or IsIconic(wnd)) and ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or (GetWindowLong(Wnd, GWL_HWNDPARENT) = GetDesktopWindow)) and (GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW = 0) then begin GetWindowText(Wnd, Bezeichnung, Length(Bezeichnung)); TListBox(LParam).Items.Add(Bezeichnung); end; Result := True; end; procedure TForm1.aktualisieren1Click(Sender: TObject); begin ListBox1.Clear; EnumWindows(@EnumWindowsProc, LPARAM(ListBox1)); end; |
Re: Fenster Listen
Zitat:
Delphi-Quellcode:
Wie muss ich diesen abschnitt eintragen? wenn cih den einfach hinzufüge bekomm ich erst mal die meldungen:
type
PMyEnumParam = ^TMyEnumParam; TMyEnumParam = record lb: TListbox; end; -"Feld Form1.Form1 besitzt keine entsprechende Komponente. Soll d. Deklaration entfert werden?" -"Die Methode Button1Click, auf die Button1Click verweist, existiert nicht soll der Verweis entfernt werden?" bei verneinung kommen dann folgende compiler meldungen: ; oder : erwartet aber = gefunden Published-Feld 'PMyEnumParam' ist weder vom Typ class noch interface
Delphi-Quellcode:
und das gleiche mit der nächsten Zeile..
PMyEnumParam = ^TMyEnumParam;
|
Re: Fenster Listen
Zitat:
|
Re: Fenster Listen
in D7 und D2009 getestet
|
Re: Fenster Listen
Ich werde natürlich wieder ignoriert ... :hello:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz