请教怎么实现显示桌面功能?
请教怎么实现显示桌面功能?
楼主fengzi_zhu(吃白菜补VC)2002-10-08 17:21:10 在 VC/MFC / 基础类 提问 一次意外的失误我把显示桌面给叉掉了, 没想到这么的不方便(想从桌面上打开一个东西,要把所有的
程序都最小化,痛~), 于是一怒之下,便想自己编一个,开始想来是很简单的.
方法有三:
其一:将桌面窗口提到最前面.用SetForegroundWindow()和ShowWindow()
问题是:不知道哪个是桌面窗口,#37968, progman, 还是SHELLDLL_DefView?
我试过将一个写字本(Notepad)提到最前面.可以.
其二:将所有的用户窗口最小化之后,就显示桌面了.
得到所有的窗口进行过滤,我用WS_MINIMIZEBOX窗口属性进行过虑, 但是还有
一些不想要的(一些隐藏的)窗口被最小化, 如MS_WebcheckMonitor,还有OICQ
的历史档案管理器. 我还试过用WS_EX_APPWINDOW(MSDN上说能停留在任务栏
的窗口都有这个属性. 我用了之后只有OICQ被最小化.)
其三:取得用户进程的所有线程的主窗口.这部分我还没有结果,请大家给点意见?
没想到小小的一个东西竟然会这么麻烦...唉~ 只怪自己学艺不精啊! 问题点数:100、回复次数:12Top
1 楼masterz(www.fruitfruit.com)回复于 2002-10-08 17:31:34 得分 10
EnumWindows, for each window, post WM_SYSCOMMAND message with SC_MINIMIZE .Top
2 楼masterz(www.fruitfruit.com)回复于 2002-10-08 17:37:57 得分 30
http://www.members.olmworld.net/vcguru/article/2_105.htm
给Win95工具条增加显示桌面功能Top
3 楼slyse(slyse)回复于 2002-10-08 17:38:47 得分 5
1 可以用GetDesktopWindow 获得桌面窗口句柄
Top
4 楼slyse(slyse)回复于 2002-10-08 17:56:52 得分 5
GetDesktopWindow 可以获得代表整个屏幕的一个窗口(桌面窗口)句柄Top
5 楼gujoy(红色代码)回复于 2002-10-08 17:59:29 得分 0
哈哈,用win+d看看还行不行,不行,自己找办法看能否恢复,我记不清是哪个程序了,到MS网站上去看看就是了!Top
6 楼fengzi_zhu(吃白菜补VC)回复于 2002-10-09 10:06:02 得分 0
TO masterz():
我已经取得了所有的窗口,我觉得不同进程间的通讯是不能直接用PostMessage
的,不是吗?好像要用WM_COPYDATA,或共享内存,什么的。Top
7 楼fengzi_zhu(吃白菜补VC)回复于 2002-10-12 22:12:55 得分 0
upTop
8 楼sjsj(虚怀若谷)回复于 2002-10-13 12:33:09 得分 0
开始菜单,查找“显示桌面”,将它复制
开始菜单,查找“Quick Launch”,进入该文件夹,粘贴刚才复制的文件
Good Luky ,GuyTop
9 楼wx_xuan(春晖)回复于 2002-10-13 12:36:07 得分 0
gzTop
10 楼kwiner(ak.net)回复于 2002-10-13 12:44:42 得分 0
哦,在c:\windows\system目录下有一个显示桌面的
文件,把它创建快捷方式到快速启动栏不就可以啦Top
11 楼rivershan(过分的比较讨论某种语言,就像站在两个槽子中间不知哪个槽子的草更好的蠢驴。)回复于 2002-10-13 12:47:32 得分 40
1、98/me下:
在Windows操作系统中,任务栏的显示桌面图标目标文件是“C:\Windows\Application Data\Microsoft\Internet Explorer\Quick Launch\显示桌面.scf”,所以如果需要恢复该图标,只需要在原处重新建立一个“显示桌面.scf”文件即可。
可以使用记事本等文本编辑器,重新用以下内容建立一个显示桌面.scf文件。
Command=2
IconFile=explorer.exe,3
Command=ToggleDesktop
工具栏中“显示桌面”图标的实际位置是:“C:\Windows\System\显示桌面.scf”,只需要按此路径找到它,复制到文件夹“C:\Windows\Application Data\Microsoft\Internet Explorer\Quick Launch”中或创建快捷方式直接拖拽至任务栏中即可。
2、2000/XP:
在控制面板下的用户管理中启用GUEST账户,然后在系统盘下Documents and Settings\Guest\Application Data\Microsoft\Internet Explorer\Quick Launch下找到“显示桌面“这个文件,考到你的用户名文件夹的相应路径下,然后在工具栏上右键, 工具栏-〉快速启动,勾掉再钩上。Top
12 楼rivershan(过分的比较讨论某种语言,就像站在两个槽子中间不知哪个槽子的草更好的蠢驴。)回复于 2002-10-13 12:48:28 得分 10
hoho~
有这样一个东西~
可以全部最小化~
VCKBASE好像有~Top
13 楼fengzi_zhu(吃白菜补VC)回复于 2002-10-13 16:11:25 得分 0
upTop
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
