AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...
Thema durchsuchen
Ansicht
Themen-Optionen

Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

Ein Thema von Z4ppy · begonnen am 15. Jan 2011 · letzter Beitrag vom 16. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 09:02
Vielleicht erklärst du mal, was das soll, dass der Benutzer nicht mehr an seinen Desktop drankommen soll. Mir erschließt sich der Sinn nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 09:28
Der Themenersteller bat speziell dich Michael, das nicht zu hinterfragen. Solange nicht offensichtlich Schadsoftware o.ä. entwickelt wird, finde ich so eine Bitte auch in Ordnung. Die Diskussion verläuft sich sonst komplett (sieht man ja nun) und bis eine Lösung da ist zieht sich das hin.
Hier weiß fast jeder, dass es meistens nicht gut ist, das Standardverhalten von Win zu ändern, aber Win macht das z.T. selbst.

Guck z.B. die Win7-Desktop-Gadgets an (oder wie man die nennt). Da gibt's eine analoge Uhr, CPU- und RAM-Anzeige und vieles mehr. Das verhält sich genau so, wie es hier gewünscht ist. Bei Win+D minimiert sich alles, aber die Gadgets bleiben im Vordergrund, auch über den Desktop-Icons. Beim Fahren mit der Maus über das Feld unten rechts ist es genauso.
Es gibt da sicher bessere Wege, die von Win7 offiziell unterstützt werden, aber wenn es auch unter XP & Co. laufen soll, muss man es manuell machen.

Geändert von Matze (16. Jan 2011 um 09:33 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 09:42
Das Post scriptum habe ich übersehen. Aber warum sagt er zum Beispiel nicht, dass er so ein Gadget programmieren will, dass auch unter XP läuft? Und wenn es harmlos ist, könnte er es ja sagen. Also ich verstehe die Heimlichtuerei nicht. Würde bestimmt auch die Hilfsbreitschaft fördern, wenn man weiß um was es geht. Aber meinte wegen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 11:09
Eigentlich ist es doch ersichtlich, was er haben möchte:

Das Fenster soll quasi als Bestandteil des Desktops angezeigt werden.
Wenn man also den Desktop anzeigen lässt, dann muss auch das Fenster noch sichtbar sein (alle anderen weg)

Es gibt da eine Möglichkeit, das Fenster auf Desktopebene zu platzieren (statt HWND_TOPMOST HWND_DESKTOP ??? )

Dann liegt das (meine ich) sogar unter den Symbolen auf dem Desktop
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#5

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 11:47
Vielleicht wäre es möglich das ganze ganau so zu machen wie der Explorer, praktisch auf der selben Ebene. Ich kann mir allerdings vorstellen, dass Windows nur einen "Explorer" zulässt.

Edit: nicht möglich, da die windows-taste vom explorer gehandelt wird. d.h. er setzt sich selbst in den Vordergrund wenn die Tasten gedrückt werden.
Man müsste also überwachen wann der explorer im vordergrund ist und dann das eigene Fenster nach oben setzen.
Wie wäre das abprüfen mit einem Timer?

Geändert von WM_CLOSE (16. Jan 2011 um 11:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 12:12
Und wenn drei, vier Explorer geöffnet sind?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
WM_CLOSE

Registriert seit: 12. Mai 2010
Ort: königsbronn
398 Beiträge
 
RAD-Studio 2009 Pro
 
#7

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 12:59
@luckie: es geht um das fenster mit der id 00000001 das ist das Desktop fenster, wo auch das hintergrundbild mit drin ist.
Die Id hab ich übrigens von Property Edit. Das Fenster mit einem eigenen Prog herauszusuchen sollte also nicht allzu schwierig sein.

Geändert von WM_CLOSE (16. Jan 2011 um 13:02 Uhr)
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 15:28
So, nun bin auch ich wieder wach

Um dich zu beruhigen, Luckie: ja, mein Programm soll ein Gadget werden und zwar eines, das aus Winamp den aktuellen Song ausliest und dann auf dem Desktop anzeigt. Die Lösungen über Rainmeter oder gar die Windows Sidebar gefallen mir nicht...

@lbccaleb:
Auf [Win]+[D] könnte ich damit reagieren, ja. Nicht aber auf Desktop anzeigen...
Ausserdem ist es ja so, dass durch erneutes Drücken von [Win]+[D] der Effekt wieder aufgehoben wird. Aber nicht nur dann, sondern auch, wenn ein beliebiges Fenster wiederhergestellt wird. Wie soll ich denn bittesehr darauf reagieren können?

@Sir Rufo:
So etwas wie HWND_DESKTOP habe ich nicht gefunden. Laut MSDN gibt es für den zweiten Parameter von SetWindowPos vier Möglichkeiten:
HWND_BOTTOM (das Fenster gerät dann aber hinter den Desktop, vermute ich - bei meinem Versuch wurde es jedenfalls gar nicht mehr angezeigt)
HWND_NOTOPMOST (dann ist das Fenster zwar nicht ganz vorne, wird aber bei [Win]+[D] versteckt)
HWND_TOP (selbes Problem wie bei HWND_NOTOPMOST)
HWND_TOPMOST (siehe oben)
Möglicherweise könnte ich direkt auf den Desktop zeichnen. Aber das finde ich nicht eine allzu hübsche Lösung...

@WM_CLOSE:
Mit dem Timer überprüfen, ob der Desktop im Vordergrund ist und dann das Fenster auf TOPMOST stellen, ansonsten auf NOTOPMOST? Ja, wäre wohl eine Möglichkeit... Aber wirklich schön ist das auch nicht und ich kann mir nicht vorstellen, dass die Windows Sidebar das so macht

Btw: Ich hab natürlich bereits via Google nach "Delphi Gadget" usw. gesucht, leider findet die Tante da aber immer nur Anleitungen, wie man mit Delphi Windows Sidebar Gadgets oder Google Gadgets basteln kann

MfG Z4ppy

Geändert von Z4ppy (16. Jan 2011 um 15:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 19:16
Um dich zu beruhigen, Luckie: ja, mein Programm soll ein Gadget werden und zwar eines, das aus Winamp den aktuellen Song ausliest und dann auf dem Desktop anzeigt. Die Lösungen über Rainmeter oder gar die Windows Sidebar gefallen mir nicht...
So, und was war daran jetzt so schlimm, dass du das nicht gleich hättest sagen können?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Minimieren bei [Win]+[D] bzw. "Desktop anzeigen" verhindern...

  Alt 16. Jan 2011, 20:26
@Luckie:
Ich hab schlicht nicht dran gedacht das zu erwähnen
Nun, hast du auch noch etwas zum Thema beizutragen?

@WM_CLOSE:
Oder via SetParent (user32.dll) direkt den Parent setzen? Müsste ja wohl auch funktionieren, wenn denn die Methode geht.

MfG Z4ppy
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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