在VC++中如何实现显示桌面的功能即全部最小化显示桌面(整理收集)

转载 2011年01月21日 03:13:00

在VC++中如何实现显示桌面的功能即全部最小化显示桌面(整理收集)

来源(www.asm32.net)

From: http://www.asm32.net/article_disp.asp?ID=4231


传统的办法是 写一个如下内容的文本文件命名为 显示桌面.scf (Show Desktop.scf)


[Shell]
Command=2
IconFile=explorer.exe,3

[Taskbar]
Command=ToggleDesktop


---------------------------------------------------------------

模拟最小化屏幕快捷键Window+D

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);


---------------------------------------------------------------

正统的办法如下:

#include  <windows.h>
#include  <shldisp.h>

int main(){
    CoInitialize(0);
    IShellDispatch4 * pdisp = NULL;
    CoCreateInstance(CLSID_Shell, NULL, CLSCTX_ALL, __uuidof(IShellDispatch4), (void **)&pdisp);
    pdisp->ToggleDesktop();  //  这句是用来切换桌面的
    pdisp->Release();
    CoUninitialize();
};


---------------------------------------------------------------

可以模拟发出windows+m试试看

---------------------------------------------------------------

还有另外一种方法,比较耗费时间,就是查找所有窗口FindWindow,如果发现可见的窗口IsWindowVisible,就发送最小化消息(WM_SYSCOMMAND,wParam==SC_MINIMIZE),

这个方法好处就是可以保留你自己的程序而不最小化

---------------------------------------------------------------

IShellDispatch4::ToggleDesktop

This method behaves like the toggle desktop icon on the quick launch bar. It hides all open windows and shows the desktop, or hides the desktop and shows all open windows. The ToggleDesktop method does not display any user interface, it just invokes the toggle action.

Link: http://www.asm32.net/article_disp.asp?ID=4231

远程桌面退出全屏/不能全屏/全屏切换的技巧 笔记本电脑没有Break键怎么办?

在使用Windows远程桌面功能时,有时候为了操作方便,我们希望它全屏,也不显示下图的浮动工具栏: 如何设置为不显示上图的浮动工具栏呢? 连接前设置一下显示选项卡,去掉“全屏显示时显示连接栏”...
  • testcs_dn
  • testcs_dn
  • 2015年05月07日 17:59
  • 19867

VC Windows API应用之GetDesktopWindow ——获得桌面所有窗口句柄的方法

Windows APIWindows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之外, 它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程...
  • testcs_dn
  • testcs_dn
  • 2015年04月19日 14:49
  • 15610

实训课一vc++6.0做出一个简单的窗口

第一步: 打开VC++6.0,【文件】->【新建】,弹出下面窗口:选择【工程】【Win32 Application】,填上【工程名称】,选择【位置】,【确定】即可。 点【完成】,如下图: ...
  • a191030148
  • a191030148
  • 2013年05月20日 16:12
  • 17256

易语言模仿win7显示桌面源码,右下角点击最小化

  • 2014年02月13日 09:11
  • 9KB
  • 下载

运行shell:windows命令,及显示桌面.scf的问题

“显示桌面.scf”内容是: [Shell] Command=2 IconFile=explorer.exe,3 [Taskbar] Command=ToggleDesktop (把上面...
  • debugconsole
  • debugconsole
  • 2013年01月23日 16:11
  • 5081

Notification 对象使用来为用户设置和显示桌面通知。

构造方法 var notification = new Notification(title, options) 参数 title 一定会被显示的通知标题 options (可选)   一个被允许用来...
  • qq_28582697
  • qq_28582697
  • 2017年03月30日 14:59
  • 155

怎么在xp、win7、win8中快速显示桌面

在xp中我们可以直接在快速启动栏找到显示桌面图标、如果找不到可以自建一个“显示桌面”   方法如下:新建一个txt, 然后输入 [Shell] Command=2 Ico...
  • zhujun250
  • zhujun250
  • 2014年08月10日 16:32
  • 233

找回任务栏显示桌面图标及Win7如何显示快速启动栏

“显示桌面”是Windows系统里的一个小功能,在进行日常的电脑操作时,有时会急需调出桌面,但又不关闭已打开的窗口,Windows对此添加了显示桌面的快捷键,默认在“开始”左边的第一个快捷方式。 1....
  • u012384954
  • u012384954
  • 2013年11月27日 16:19
  • 2228

[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显示菜单栏?

0.背景介绍: 一般的server操作系统是不安装图形系统的,这样的话,要想打开它的图形界面可以在server端上安装vncserver软件。然后再在本地机器(windows或linux)上安装一个v...
  • loveaborn
  • loveaborn
  • 2013年08月11日 18:19
  • 6219

Win7 系统如何显示桌面

习惯了用XP系统的用户在换了Win7系统后总是不习惯,找不到原来xp系统的一些操作,这里小编给大家介绍Win7系统如何显示桌面的方法 工具/原料 Win7系统 方法1 看到...
  • jieshaowang1229
  • jieshaowang1229
  • 2016年06月10日 03:13
  • 272
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在VC++中如何实现显示桌面的功能即全部最小化显示桌面(整理收集)
举报原因:
原因补充:

(最多只允许输入30个字)