AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ereignis: Desktop anzeigen

Ein Thema von Berni68 · begonnen am 4. Jan 2010 · letzter Beitrag vom 4. Jan 2010
Antwort Antwort
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#1

Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 16:23
Hallo,

was passiert mit einem Fenster/Programm das vom Anwender mittels WindowsButton <Desktop anzeigen> 'unsichtbar wird'.
Weder Eigenschaften wie WindowsState oder Visible ändern sich,
noch kommt in Tx.MyWM_SYSCOMMAND(var aMsg: TMessage) was an.
auch in TApplicationEvents.OnMinimize oder in TApplicationEvents.OnMessage passiert nichts.
Aber irgendwas muss man diesen Zustand doch rausbekommen können.
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von holliesoft
holliesoft

Registriert seit: 4. Apr 2005
Ort: Gau-Algesheim
250 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 16:40
So weit ich weiß wird das "Desktop-Fenster" (ist ja ein Listview) in den Vordergrund gesetzt, also vor alle anderen Fenster.
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 16:46
Zitat von holliesoft:
So weit ich weiß wird das "Desktop-Fenster" (ist ja ein Listview) in den Vordergrund gesetzt, also vor alle anderen Fenster.
Das kann aber eigentlich nicht alles sein, denn die versteckten Fenster sind daraufhin offensichtlich minimiert.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 16:53
Minimiert sind sie nicht, (windowsstate unverändert und Ereignis onMinimize wird nicht durchlaufen)
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 17:17
Zitat von Berni68:
Minimiert sind sie nicht, (windowsstate unverändert und Ereignis onMinimize wird nicht durchlaufen)
Dann klick mal in der Taskleiste auf eines der Fenster Die werden daraufhin aus der Taskleiste heraus wieder hergestellt. Mag sein, dass Windows nicht den üblichen Kladeradatsch durchläuft, die Fenster sind aber definitiv nicht einfach nur im Hintergrund
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Florian Hämmerle
(Gast)

n/a Beiträge
 
#6

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 19:14
Sie sind im hintergrund! Drück nochmal auf die "Desktop anzeigen" Button => wieder wie zuvor

mfg Florian
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

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

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 19:17
ich möchte mich meinem Vor-Poster anschließen. Die Fenster sind definitiv nur im Hintergrund. Windows macht intern nichts anderes, als das Desktop-Fenster nach ganz nach vorne zu holen. Fenster, die normalerweise im Vordergrund sind, wie jetzt bei Windows Vista die Sidebar verschwinden auch. Die Sidebar kommt aber wieder, wenn man ein anderes Fenster öffnet oder wieder herholt. Und der Anmerkung, dass Fenster danach von der Taskleiste erneut kommen, möchte ich wiedersprechen. Die Fenster erscheinen ohne irgendwelche Einblendeffekte genau da, wo sie vor dem "Desktop anzeigen" waren.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 19:38
Zitat von Florian Hämmerle:
Sie sind im hintergrund! Drück nochmal auf die "Desktop anzeigen" Button => wieder wie zuvor
Aha... und?
Zitat von rollstuhlfahrer:
Die Fenster erscheinen ohne irgendwelche Einblendeffekte genau da, wo sie vor dem "Desktop anzeigen" waren.
Bei Windows 7 ist diese Behauptung definitv falsch Sobald ich eines der "versteckten" Fenster in der Taskleiste anklicke kommt die typische Animation für minimierte Fenster

Wie gesagt, ich habe keine Ahnung, was da tasächlich abläuft. Aber in irgendeiner Weise scheint Windows diese Fenster wohl doch als minimiert anzusehen, sonst käme eben diese Animation nicht
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  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
 
#9

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 20:30
Zitat von leddl:
Bei Windows 7 ist diese Behauptung definitv falsch Sobald ich eines der "versteckten" Fenster in der Taskleiste anklicke kommt die typische Animation für minimierte Fenster
Ist bei mir unter XP genauso.
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Ereignis: Desktop anzeigen

  Alt 4. Jan 2010, 20:33
Also, die Fenster sind sind definitiv nicht minimiert, auch wenn diese Animation kommt.
Mein Problem war, daß ich im Ereignis 'OnActivate' der Anwendung einen OLE-Server anspreche.
Dann ist es leider so, daß der mir das 'Wiedereinblenden' (wenn ich auf der Taskleiste auf das Symbol klicke, oder nochmals <Desktop anzeigen>) abwürgt, d.h. das Fenster bleibt weg, läßt sich nicht mehr herstellen, obwohl es noch da ist, und z.B. auf Hotkeys richtig reagiert.
Aber eben nicht mehr sichtbar bis zum Abwürgen und Neustart.
Was den OLE-Server dazu bewegt das zu tun weiß ich nicht, ist mir aber auch egal.
Denn mit
 if IsWindowVisible(FindAWindow('...','T...')) then begin DoSomething; end; kann ich das gewünschte feststellen, dieser Bool-Wert ist korrekt, egal wie das Fenster in diesen Zustand kommt, ob mit minimieren oder mit <Desktop anzeigen>.
Bernhard
  Mit Zitat antworten Zitat
Antwort Antwort


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 12:18 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