![]() |
Always StayOnBack?
Ich weiß, es gibt hier in der DP schon einige Threads zu dem Thema,
aber die CreateParams-Methode funktioniert bei mir irgendwie nicht. Ich habe folgendes gemacht: - Die Desktopsymbole ausgeblendet - Eine Form erstellt, die ein paar Schieberegler und Felder beinhaltet, bsnone und eine definierte TransparentColor hat. Kann mir jemand weiterhelfen? MfG Jonathan |
Re: Always StayOnBack?
Zitat:
|
Re: Always StayOnBack?
To Luckie:
Heut keine Glaskugel dabei? :wink: |
Re: Always StayOnBack?
Ich möchte meinen Desktop so umgestalten, dass dessen Inhalt in mehrere Gruppen unterteilt wird. Zu diesem Zweck muss ich quasi einen Desktopersatz schreiben.
Mein Problem ist, dass das Fenster nicht im Hintergrund bleibt. Sobald ich es wieder aktiviere, ist es im Vordergrund. MfG Jonathan |
Re: Always StayOnBack?
Dann musst du eben in regelmäßigen Abständen prüfen, welches Fenster den Fokus hat und gegebenfalls den Fokus ändern.
|
Re: Always StayOnBack?
Hm ja das wäre zwar eine Methode, aber zugleich auch unsaubere Programmierung..
Gibt es keine bessere Methode? Wie macht es denn Microsoft mit dem Desktop? Ist das Privileg nur dem Desktop vorbehalten? MfG Jonathan |
Re: Always StayOnBack?
Der Desktop ist ja eigentlich nur ein Ordner mit speziellen Rechten.
Das sollte also nachzubilden sein. |
Re: Always StayOnBack?
Ja aber ich will ja nicht den Inhalt des Ordners modifizieren, (was btw. auch nicht das Verhalten des Desktops verändern würde, der ja von irgendeinem Windows-Prozess gesteuert wird), sondern selbst ein Programm schreiben, dass sich immer über den Desktop, aber unter alle anderen Programme legt.
MfG Jonathan |
Re: Always StayOnBack?
Hab ich schon verstanden.
|
Re: Always StayOnBack?
Hm danke erstmal für die Hilfe mit den Handles :thumb: , aber ich hatte irgendwie gehofft, dass es noch eine bessere Methode dafür gibt..
|
Re: Always StayOnBack?
Ich denke mal erstmal brauchst du das control handle des Desktopscontrol und dann benutze Windows.SetParent() und setze deine form auf den desktop
|
Re: Always StayOnBack?
Hm zurzeit ist das Handle des Desktops bei mir 65682, aber kann sich das auch ändern?
|
Re: Always StayOnBack?
Ja natürlich
|
Re: Always StayOnBack?
Okay wäre ja auch zu leicht gewesen... :wall:
|
Re: Always StayOnBack?
Aber man kann es immer mit
![]() |
Re: Always StayOnBack?
Moin eisblock,
mit ![]() Dies sollte gültig sein, solange nicht der explorer Prozess beendet wird, der beim Rechnerstart gestartet wird, und diesen darstellt. Wenn Du also den Explorer nicht per Taskmanager abschiesst, und dann neu startest, sollte das Auslesen des Handles zu Programmstart genügen. (Falls nicht gerade irgendeine Aktion auf dem Rechner den Explorer beendet und neu startet, was auch mal vorkommen kann). |
Re: Always StayOnBack?
Es wäre wohl einafcher eine eigene Shell zu programmieren in diesem Fall.
|
Re: Always StayOnBack?
Also ich hab das jetzt so gemacht:
Windows.SetParent(GetTopWindow(0),GetDesktopWindow ); allerdings funktioniert das nicht. Wenn ich hingegen den derzeitigen Handle vom Desktop statt GetDesktopWindow einsetze, funktioniert es. Allerdings habe ich den Handle auch nur von einem anderen Programm, dass den Handle des derzeit fokussierten Fensters ausgibt. P.S.: wo sollte ich denn obige Anweisung am geschicktesten einsetzen? lG Jonathan |
Re: Always StayOnBack?
Guck mal, gestern veröffentlicht. Das Programm ist auf den Desktop gepappt und bleibt da.
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 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