Desktop anzeigen
-
Kolumbus schrieb:
Aha, verstehe. Also Beides nicht falsch... Außer wenn man genau betrachtet in welchem Unterforum wir hier sind.

Alles eine Frage der Gewohnheit

Und, wie sieht es mit dem Rest der hier geposteten Ansätze / Überlegungen aus? Kannst Du Dich dazu bitte auch äußern @CStoll, bist ja um einiges versierter...

Praktisch ausprobiert habe ich es auch noch nicht (war bislang auch nicht nötig, den Desktop explizit anzeigen zu lassen), also bleiben nur zwei Möglichkeiten: (a)ausprobieren und sehen, was Windows dazu sagt oder (b) warten auf die echten Experten (vielleicht meldet sich ja einer hier).
-
Für (a) ist DerHeide zuständig.
(b) praktiziere ich in diesem Fall. Please hold the line!
@DerHeide: Ich hab Deine Posts nochmal gelesen... Willst Du einfach Deine Anwendung ausblenden, oder Alle geöffneten?
-
Es funktioniert wie oben beschrieben nicht und auch nicht mit PostMessage(..)
bzw. SendMessage.
-
Ihr könnt das ja gar nicht.

SendMessage( FindWindow("Shell_TrayWnd", NULL), WM_COMMAND, 407, 0 );

-
Wie Kolumbus schon sagte: Wen willst du überhaupt minimieren?
- das eigene Fenster?
this->ShowWindow(SW_MINIMIZE);//für Kolumbus: das ist identisch zu ShowWindow(myHwnd,SW_MINIMIZE)- alle vorhandenen Fenster?
Da bleibt im Notfall die Extremvariante - minimiere jedes Fenster einzeln:
//Prinziplösung - solltest du eventuell mit der MSDN abgleichen EnumWindows(ShowWindow,SW_MINIMIZE);
-
CStoll schrieb:
//für Kolumbus: das ist identisch zu ShowWindow(myHwnd,SW_MINIMIZE)Ich kann da nicht drüber lachen

proggingmania schrieb:
SendMessage( FindWindow("Shell_TrayWnd", NULL), WM_COMMAND, 407, 0 );und was ist das für eine flache Aktion?

DerHeide schrieb:
Es funktioniert wie oben beschrieben nicht...
Was soll Es denn nun werden?
-
Kolumbus schrieb:
CStoll schrieb:
//für Kolumbus: das ist identisch zu ShowWindow(myHwnd,SW_MINIMIZE)Ich kann da nicht drüber lachen

Das war auch nicht als Witz gedacht - ich wollte nur weitere Bemerkungen zu den MFC-Methoden vermeiden

PS: Eine Alternative zu dem obigen EnumWindows() ist mir im Nachhinein noch eingefallen:
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MINIMIZE,0);
-
Kolumbus schrieb:
und was ist das für eine flache Aktion?

Diese ultracoole Aktion macht das, was der OP gern hätte,

nämlich die Tastenkombination 'Windowstaste+D' softwaregesteuert zu emulieren.
edit: könnt ihr denn alle nicht lesen ?

-
CStoll schrieb:
PS: Eine Alternative zu dem obigen EnumWindows() ist mir im Nachhinein noch eingefallen:
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MINIMIZE,0);Mir auch, wie wäre es mit dem HWND_BOOST_SEND_VIA_SATTELITE_ACTIVATION_TEMPLATE Flag ?

-
CStoll schrieb:
...ich wollte nur weitere Bemerkungen zu den MFC-Methoden vermeiden...
jaa - ich spare sie mir ja schon...

proggingmania schrieb:
Diese ultracoole Aktion macht das, was der OP gern hätte,

nämlich die Tastenkombination 'Windowstaste+D' softwaregesteuert zu emulieren.
hmmm... sah auf den 1. Blick irgendwie aus, wie ein "flachmachen" des Fensters. Deswg. "flache Aktion". Aber ich mache mich sofort schlau.

proggingmania schrieb:
... wie wäre es mit dem HWND_BOOST_SEND_VIA_SATTELITE_ACTIVATION_TEMPLATE Flag ?
Mach sowas bitte nicht nochmal, wenn ich hier im Büro schon ab und an ins Forum schaue sollte ich nicht laut loslachen und den ganzen Schreibtisch vollspucken...

-
CStoll schrieb:
PS: Eine Alternative zu dem obigen EnumWindows() ist mir im Nachhinein noch eingefallen:
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MINIMIZE,0);Hast Du's probiert!?

Ich wär für:
#include <windows.h> void show_desktop( ) { keybd_event( VK_LWIN, 0, 0, 0 ); keybd_event( 0x4d, 0, 0, 0 ); keybd_event( 0x4d, 0, KEYEVENTF_KEYUP, 0 ); keybd_event( VK_LWIN, 0, KEYEVENTF_KEYUP, 0 ); }greetz, Swordfish
-
LOL danke, aber die Version von proggingmania hätte mir auch einfallen
müssen. Funktioniert natürlich super.
keybd_event wäre sicher auch gegangen, aber SendMessage bzw. sogar eher
PostMessage sind da vermutlich wesentlich sicherer.
-
Swordfish schrieb:
CStoll schrieb:
PS: Eine Alternative zu dem obigen EnumWindows() ist mir im Nachhinein noch eingefallen:
SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MINIMIZE,0);Hast Du's probiert!?

Ehrliche Antwort? Nein.