![]() |
Re: Fenster nicht minimieren
Zitat:
egal in welcher Form auf dem Desktop liegen haben, und dieses soll dann natürlich nicht einfach minimiert werden können. Optiplex |
Re: Fenster nicht minimieren
Zitat:
Btw bezweifle ich, dass Deskbands eine Lösung für dich sind. Du kannst nämlich nur festlegen, ob es unten, oben, rechts oder links ist, und es geht dann immer über die komplette Breite/Höhe. Außerdem wird es *immer* angezeigt, andere Anwendungen können nicht in den Bereich des Deskbands verschoben oder maximiert werden. Aber es dürfte denke ich die einzige Lösung sein, die zuverlässig sicherstellt, dass dein Zeug auch nach "Desktio anzeigen" noch angezeigt wird. |
Re: Fenster nicht minimieren
Um noch mehr zur Verwirrung beizutragen: Drück mal [Windows]+M ;)
Win+M minimiert alle Fenster. Win+D (bzw. "Desktop anzeigen") Holt den Desktop in den Vordergund. Ein nicht zu vernachlässigender Unterschied ;) (Da du ja bereits das Minimieren verhinderst, nehme ich mal an, dass dir dies bei Win+M gelingt ?) Du könntest jetzt natürlich die Message-Loop von dem Progman Fenster subclassen und die DTM_RAISE message (WM_USER + 83) abfangen. Empfehlenswert ist das jedoch nicht (allg. das Verhalten sich nicht minimieren zu lassen.) Quellen: ![]() und ![]() |
Re: Fenster nicht minimieren
Zitat:
Zitat:
jfheins, die Links muss ich mir noch ansehen, ich gebe dir noch Bescheid ob sie mir weiterhelfen. Danke für die Antworten Optiplex |
Re: Fenster nicht minimieren
Soll das Fenster dann niemals minimiert werden oder einfach nur dieses Desktop Anzeigen trotzen? Ansonsten könntest du doch prüfen ob das Fenster minimiert wurde und es wieder aufrufen.
|
Re: Fenster nicht minimieren
Zitat:
ich will nicht das allg. Verhalten von Windows ändern, ich möchte nur, dass mein kleines Fenster sichtbar bleibt und diese "ToggleDesktop" Nachricht ignoriert. Zitat:
Gruss Optiplex |
Re: Fenster nicht minimieren
Okay, also nochmal :mrgreen:
1. Würde es immernoch nicht mögen. Persönliche Meinung ;) 2. Was passiert wenn du statt "Desktop anzeigen" mal Win+M drückst? 3. Um es abzufangen, wenn der Desktop in den Vordergung geholt wird (nicht dasselbe wie alle Minimieren) könntest du versuchen, dich in die Nachrichtenschleife vom Desktop ("Progman") einzuhängen und auf die DTM_RAISE Nachricht zu reagieren. (bspw. mit einem Postmessage an deine anwendung, die sich dann beim verarbeiten dieser message in den vordergrund holt) |
Re: Fenster nicht minimieren
Zitat:
|
Re: Fenster nicht minimieren
Zitat:
Win+M bekommt man mit WM_Syscommand in den Griff. Wie hängt man sich in die Nachrichtenschleife von "Progman" ein, da bin ich mit meinem Wissen an eine Grenze gestoßen :oops:, vielleicht kann du mir da ein bischen Nachhilfe geben. Auf jeden Fall habt ihr mich dahingehend überzeugt, dass ich diese Funktion (falls es gelingt sie zu realisieren) in die Options aufnehmen werde, so dass jeder User selbst bestimmen kann ob er dieses Fenster auf dem Desktop liegen hat oder nicht. Zitat:
Optiplex |
Re: Fenster nicht minimieren
So ungefähr:
Delphi-Quellcode:
Das Handle bekommst du über FindWindow ;)
var
OldWndProc: Pointer; begin // Change WndProc OldWndProc := SetWindowLong({Handle}, GWLP_WNDPROC, @NewWndProc); end; function NewWndProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; begin if ({Message}) // Handle Message else // Call old WndProc CallWindowProc(OldWndProc, hWnd, uMsg, wParam, lParam); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 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