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 2 von 3     12 3      
WM_CLOSE

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

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

  Alt 16. Jan 2011, 12: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 12:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

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

  Alt 16. Jan 2011, 13: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
 
#13

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

  Alt 16. Jan 2011, 13: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 14:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

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

  Alt 16. Jan 2011, 14:38
Die ID ist aber nicht eindeutig. Jeder Programmierer kann nach gut Dünken IDs für seine Fenster vergeben. Aber da der Desktop Explorer als erster Explorer Prozess gestartet wird, müsste er von allen Explorer Instanzen, die Instanz mit der niedrigsten ID sein.
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
 
#15

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

  Alt 16. Jan 2011, 16: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 16:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

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

  Alt 16. Jan 2011, 20: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
WM_CLOSE

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

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

  Alt 16. Jan 2011, 21:23
du könntest ein child-Fenster des Desktops erzeugen, das hab ich grad mit einem edit ausprobiert (Code aus dem thread http://www.delphipraxis.net/68483-no...erstellen.html)

CreateWindowEx(WS_EX_CLIENTEDGE, 'edit', 'Edit2', WS_VISIBLE or WS_CHILD or ES_PASSWORD, 128, 408, 121, 21, $40314{hier das richtige handle einfügen}, 0, HINSTANCE, nil); guck dir am besten dazu die nonVCL themen an

PS: ich habe es mit SetWindowLong usw probiert und bin gescheitert. (Das muss aber nichts heissen)

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

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

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

  Alt 16. Jan 2011, 21: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
WM_CLOSE

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

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

  Alt 16. Jan 2011, 21:35
Das hab ich probiert, hat bei mir nicht funktioniert,ich konnte die anwendung immernoch minimieren, und hab es nach 30 min aufgegeben.
Du kannst es ja mal selbst probieren. Viel glück.
PS:
Muss das prog auch auf "alten" BS oder wäre es nicht einfacher gleich ein Gadget zu proggen?
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#20

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

  Alt 16. Jan 2011, 21:37
Und wo liegt das Problem bei den Gadgets? - Nun, du brauchst einen Webservice (z.B. IdHTTPServer) und kannst dein Gadget nach Windows-Standards entwickeln. Das Gadget macht intern AJAX-Abfragen auf deinen HTTPServer und dein Progrämmchen, welches still und leise im Hintergrund mitläuft, holt sich die Daten von Winamp.

Einziges Problem dürfte das Schließen sein, weil Desktop Gadgets meiner Meinung nach dafür ausgelegt sind, 100% der Zeit auf dem Desktop zu verbringen.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz