![]() |
Ereignis: Desktop anzeigen
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. |
Re: Ereignis: Desktop anzeigen
So weit ich weiß wird das "Desktop-Fenster" (ist ja ein Listview) in den Vordergrund gesetzt, also vor alle anderen Fenster.
|
Re: Ereignis: Desktop anzeigen
Zitat:
|
Re: Ereignis: Desktop anzeigen
Minimiert sind sie nicht, (windowsstate unverändert und Ereignis onMinimize wird nicht durchlaufen)
|
Re: Ereignis: Desktop anzeigen
Zitat:
|
Re: Ereignis: Desktop anzeigen
Sie sind im hintergrund! Drück nochmal auf die "Desktop anzeigen" Button => wieder wie zuvor
mfg Florian |
Re: Ereignis: Desktop anzeigen
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 |
Re: Ereignis: Desktop anzeigen
Zitat:
Zitat:
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 ;) |
Re: Ereignis: Desktop anzeigen
Zitat:
|
Re: Ereignis: Desktop anzeigen
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
Delphi-Quellcode:
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>.
if IsWindowVisible(FindAWindow('...','T...')) then begin DoSomething; end;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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