Desktop anzeigen
-
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.