![]() |
Taskliste und eigene Anwendung/Fenster ignorieren
Hallöchen.
Irgendwie bin ich scheinbar zu blöd ;-) Ich möchte eine Taskliste wie sie bei ALT-Tab angezeigt wird ermitteln und die eigene Anwendung dabei ignorieren. Dies sollte ja eigentlich über das Handle ganz einfach möglich sein, ABER irgendwie gibt in dem Fall der Vergleich zweier Handle (die bei Debuggen exakt gleich sind) immer dass sie ungleich wären. Ich verwende den hier im Forum gefundenen und minimal abgeänderten Code:
Code:
myTaskList ist eine Var vom Type TStrings und die Zeile die IMMER True ergibt auch wenn die Handles gleich sind ist:
function myTasksListUpdate(ExcludeWindow: HWnd): Boolean;
function EnumWin(wHdl: HWnd; FirstWnd: PCardinal): Boolean; stdcall; var WinText : AnsiString; ProcId : cardinal; f : Boolean; begin Result := True; if IsWindowVisible(wHdl) then begin if (GetWindowLong(wHdl, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) <> 0 then wHdl:= GetWindowLong(wHdl, GWL_HWNDPARENT); if ExcludeWindow <> wHdl then begin ProcId := GetWindowThreadProcessID(wHdl, nil); SetLength(WinText, SendMessage(wHdl, WM_GETTEXTLENGTH, 0, 0)); SendMessage(wHdl, WM_GETTEXT, Length(WinText) + 1, integer(WinText)); if (length(WinText) > 0) and (FirstWnd^ <> ProcId) then myTaskList.AddObject(WinText, Pointer(wHdl)); FirstWnd^ := ProcId; end; end; end; var FirstWnd : cardinal; begin myTaskList.Clear; myTaskList.BeginUpdate; try Result := EnumWindows(@EnumWin, cardinal(@FirstWnd)); finally myTaskList.EndUpdate; end; end;
Code:
Vielleicht hat ja noch irgendjemand eine Idee dazu.
if ExcludeWindow <> wHdl then begin
|
Re: Taskliste und eigene Anwendung/Fenster ignorieren
Seltsamerweise gibt ShowMessage(Inttostr(ExcludeWindow)) vor dieser Zeile einen anderen Wert aus
als im Debugger angezeigt wird.
Delphi-Quellcode:
if ExcludeWindow <> wHdl then begin
|
Re: Taskliste und eigene Anwendung/Fenster ignorieren
Hast du schon eine Lösung gefunden?
|
Re: Taskliste und eigene Anwendung/Fenster ignorieren
Bisher keine wirklich Gute.
Nachdem ich alle Fenster habe gehe ich über die Caption und schmeisse die eigene raus. Das ist nicht das was ich suchte da es zumindestens theoretisch möglich wäre, dass ein anderes Fenster die gleiche Caption hat ;-( |
Re: Taskliste und eigene Anwendung/Fenster ignorieren
Ich habe gemerkt, dass wenn ExcludeWindow global deklariert wird und nicht als Parameter übergeben wird, funktioniert der Vergleich.
|
Re: Taskliste und eigene Anwendung/Fenster ignorieren
Zitat:
Naja, hauptsache es funktioniert ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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-2025 by Thomas Breitkreuz