在VC++中如何实现显示桌面的功能即全部最小化显示桌面(整理收集)
2011-01-21 03:13
405 查看
在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
相关文章推荐
- 如何做出像【酷狗】显示歌词的功能(VC++)
- 如何通过动态生成Html灵活实现DataGrid分类统计的界面显示功能
- 使用模版列完成课上例子的实现,用一列显示 全部信息,同时完成修改的功能
- VC中如何实现最小化到托盘以及恢复
- vc++中如何实现类似fences软件中的栅栏桌面
- vc如何实现按钮上显示icon
- 如何实现视频的快进快退功能(整理)
- 如何通过动态生成Html灵活实现DataGrid分类统计的界面显示功能
- VB的ShowInTaskbar功能分析以及用VC的实现 如何隐藏对话框在工具栏上的按钮
- 实现购物车结算功能:批量/全部删除,全选,单价/总价,数量增减,页面隐藏/显示
- VC实现程序最小化到系统托盘功能
- VC最大化和最小化窗口示例代码,实现最大化和最小化按钮的功能
- 如何实现报表中高亮显示文本功能
- VC MFC 对话框,如何实现鼠标拖动显示一个框,松开鼠标框就消失
- VC++ 如何实现程序启动后最小化到托盘
- 如何实现桌面App图标可以动态显示消息数(类似手机上的QQ图标)?
- 该如何实现以下功能?第一次按ctrl+c 显示hello,第二次按ctrl+c 退出进程
- 在页面中,我们经常看到,一个button按钮,如果属标点击,就会触发一个窗口的显示,如果二次点击并可以隐藏,那么如何通过JAVA配合html来实现这一功能呢?
- C# 如何使自己的程序在“显示桌面”时不最小化
- Android 单个TextView 点击“显示全部”功能实现方法