//最小化桌面上所有窗口.
        keybd_event(VK_LWIN, 0, 0, 0);
        keybd_event('D', 0, 0, 0);
        keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
        keybd_event('D', 0, KEYEVENTF_KEYUP, 0);
        //隐藏桌面.
        hDesktop = FindWindow("ProgMan", NULL);
        ShowWindow(hDesktop, SW_HIDE);
        //隐藏任务栏.
        hSystray = FindWindow("Shell_TrayWnd", NULL);
        ShowWindow(hSystray, SW_HIDE);
除了隐藏桌面,其它都没问题.
奇怪的是双击我的电脑后桌面隐藏了.

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2713/2713456.xml?temp=.8149683
      

  2.   

    加一个 UpdateWindow 试试
      

  3.   

    hDesktop = FindWindow("ProgMan", NULL);
            ShowWindow(hDesktop, SW_HIDE);
    ProgMan是代表桌面吗?
      

  4.   


    keybd_event(VK_LWIN, 0, 0, 0);
    keybd_event('D', 0, 0, 0);
    keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
    keybd_event('D', 0, KEYEVENTF_KEYUP, 0);
    这些东西的问题,去掉就好了。
    你可以试试 EnumWindows 或 EnumDesktopWindows 函数 来最小化所有窗口
      

  5.   

    这样做:
            //隐藏桌面.
            hDesktop = FindWindow("ProgMan", NULL);
            ShowWindow(hDesktop, SW_HIDE);
            //隐藏任务栏.
            hSystray = FindWindow("Shell_TrayWnd", NULL);
            ShowWindow(hSystray, SW_HIDE);
    keybd_event(VK_LWIN, 0, 0, 0);
    keybd_event('M', 0, 0, 0);
    keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
    keybd_event('M', 0, KEYEVENTF_KEYUP, 0);
      

  6.   

    keybd_event(VK_LWIN, 0, 0, 0);
    keybd_event('M', 0, 0, 0);
    keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
    keybd_event('M', 0, KEYEVENTF_KEYUP, 0);
    //////////////////////////////////////////////请问为什么要用这几句
      

  7.   

    CWnd *Desktop;
    Desktop=FindWindow("ProgMan",NULL);
    Desktop->ShowWindow(SW_HIDE);//隐藏桌面图标就这述就可以了吧
      

  8.   

    谢了,顺便请问一句,Win+M是什么意思?
      

  9.   

    Win+M最小化所有窗口
    Win+D显示桌面
      

  10.   

    有个问题,Win+M不能最小化对话框窗口