无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 14231|回复: 36
打印 上一主题 下一主题

[分享] WIN+D(显示桌面) 4 Windows 10 PE

[复制链接]
跳转到指定楼层
1#
发表于 2016-6-3 22:47:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 slore 于 2017-4-15 17:27 编辑

===========================================2017-04-15===========================================
根据noelBlanc于2017-03-23发表的调查,explorer的任务栏有个模式,默认是0,如果设置为桌面模式的话,
就可以使用 显示桌面 功能,正常系统加载某组件成功后,会发送切换消息,但是由于PE的组件不全,所以这个切换消息没有,
导致无法使用 显示桌面 功能。当任务栏创建好后,我们主动进行下,explorer.exe!Tray::ModeChanged()就行了。

具体做法是:
给任务栏"Shell_TrayWnd"窗口,发送 WM_USER(0x400) + 0x1BA消息,WParam为0, lParam为0就可以切换。(WParam为1的话,禁用 显示桌面 功能)

代码:
  1. hwnd = FindWindow("Shell_TrayWnd", "");
  2. SendMessage(hwnd, 0x5BA, 0, 0);
复制代码

论坛会autoit的,会pecmd写脚本的人很多,我自己的1KB的WIND.exe就扔了。
PE下,explorer.exe不全面,各种状况需要刷新重启进程,你们自己处理,每次重建后重新发消息吧。


===========================================2016-06-04===========================================
PExlorer的文件资源管理器和开始菜单的代替方案基本使用上没啥问题了,所以最近在清理代码,
把以前的容易出错的内置文件资源管理器的代码和开始菜单项删除了。看到“显示桌面”这块代码不过100行,
偶尔用了几个使用自带explorer外壳的WIN10 PE,发现显示桌面都无法使用,就单独提取出来编译个小工具WIND.exe。

功能就是“显示桌面/还原桌面窗口”,本来3KB的程序能搞定的,为了响应explorer右下角的“显示桌面”按钮,又加了个3KB的DLL处理消息。

  • WIN+D热键,或者点击右下角按钮,可以最小化和还原桌面窗口。任务栏的右键菜单【显示桌面】没有处理。
  • WIN+F12退出此程序。(估计用不上)
  • PE下没有显卡驱动的情况下,最小化动画效果延时很高,程序启动会禁用最小化动画效果,退出也不还原。(如果想要这个效果的话,WIND.exe 0启动程序,就不改变最小化动画效果设定。)


下载(已经有更完美的解决方案,不建议下载了):
WIND_x64.zip (3.79 KB, 下载次数: 262)
WIND_x86.zip (2.89 KB, 下载次数: 203)

评分

参与人数 4无忧币 +20 收起 理由
+ 5 神马都是浮云
belenkwong + 5 赞一个!
6669913 + 5 很给力!
2010feicool + 5 这是好东西,给你个赞

查看全部评分

2#
发表于 2016-6-3 23:59:01 | 只看该作者
好东东,感谢楼主,明天测试一下!~
回复

使用道具 举报

3#
发表于 2016-6-4 08:14:04 | 只看该作者
本帖最后由 tegl 于 2016-6-5 20:17 编辑

已测,好用,这下10PE完美了

任务栏的右键菜单【显示桌面】没有处理。


期待处理一下
回复

使用道具 举报

4#
发表于 2016-6-4 21:32:39 | 只看该作者
之前一直用VB的功能
CreateObject("Shell.Application").MinimizeAll
来试试你的小玩具
回复

使用道具 举报

5#
发表于 2016-6-5 11:52:56 | 只看该作者
thank you
回复

使用道具 举报

6#
发表于 2016-6-5 14:55:21 | 只看该作者
好東西總是不寂寞的!!!
回复

使用道具 举报

7#
发表于 2016-6-6 08:44:14 | 只看该作者
本帖最后由 坏坏小生 于 2016-6-6 09:28 编辑

经测试,此程序必须资源管理器启动后运行才生效,不会等待资源管理器!~如果先于资源管理器启动则无效

点评

要响应explorer的热键,和右下角点击动作,是的必须启动explorer否则找不到消息处理对象。 另外,explorer刷新后也是无效,因为是DLL注入指定进程。没有做explorer的监视重新注入动作。  详情 回复 发表于 2016-6-6 09:54
回复

使用道具 举报

8#
 楼主| 发表于 2016-6-6 09:54:10 | 只看该作者
坏坏小生 发表于 2016-6-6 08:44
经测试,此程序必须资源管理器启动后运行才生效,不会等待资源管理器!~如果先于资源管理器启动则无效

要响应explorer的热键,和右下角点击动作,是的必须启动explorer否则找不到消息处理对象。
另外,explorer刷新后也是无效,因为是DLL注入指定进程。没有做explorer的监视重新注入动作。

点评

建议监视一下资源管理器,毕竟它是需要常驻内存的进程  详情 回复 发表于 2016-6-6 11:15
回复

使用道具 举报

9#
发表于 2016-6-6 11:15:35 | 只看该作者
slore 发表于 2016-6-6 09:54
要响应explorer的热键,和右下角点击动作,是的必须启动explorer否则找不到消息处理对象。
另外,explor ...

建议监视一下资源管理器,毕竟它是需要常驻内存的进程

点评

赞同  发表于 2016-6-6 11:38
回复

使用道具 举报

10#
发表于 2016-6-11 12:07:01 | 只看该作者
这才是广大人民群众喜闻乐见的东西,之前下了好多个WIN10 PE 就是没有显示桌面那个功能放弃了,这个下来试试看怎么用,如果功能好用的话就跟进10PE时代了
回复

使用道具 举报

11#
发表于 2016-7-27 18:38:23 来自手机 | 只看该作者
能不能增加显示任务栏图标功能,即替代win+T

点评

不怎么使用3方PE了,没用过这个热键,等下个月win10正式版出来没人解决的话,看看。  详情 回复 发表于 2016-7-30 09:02
回复

使用道具 举报

12#
 楼主| 发表于 2016-7-30 09:02:03 来自手机 | 只看该作者
kcyou 发表于 2016-7-27 18:38
能不能增加显示任务栏图标功能,即替代win+T

不怎么使用3方PE了,没用过这个热键,等下个月win10正式版出来没人解决的话,看看。
回复

使用道具 举报

13#
发表于 2016-9-24 19:27:20 | 只看该作者
支持大神繼續研發這類輔助性質的東西。
回复

使用道具 举报

14#
发表于 2016-10-14 09:21:08 | 只看该作者
试用了一下,刷新EXPLORER,WAIT 2000,再启动WIND,还是不能生效。如果能解决这个问题就完美了。。。
期待楼主更新
回复

使用道具 举报

15#
发表于 2016-11-10 08:26:30 | 只看该作者
试了一下  
kill explorer.exe
wait 1000
exec wind.exe
是有用的。。
回复

使用道具 举报

16#
发表于 2016-12-4 22:13:01 | 只看该作者
非常不错的hook,不过目前有个小bUG,就是刷新 explorer.exe 后,也就是重启 explorer.exe 后功能失效。

点评

不算是bug,因为本来就刷新shell本来是explorer处理的不足导致的,没为这个买单,想着完善了explorer就不用管的。另外重启的时候也重启wind.exe的话也可以的。其实wind第一版是自己注册热键WIN+D,先于explorer启动  详情 回复 发表于 2016-12-4 23:20
回复

使用道具 举报

17#
 楼主| 发表于 2016-12-4 23:20:14 | 只看该作者
贝壳iT 发表于 2016-12-4 22:13
非常不错的hook,不过目前有个小bUG,就是刷新 explorer.exe 后,也就是重启 explorer.exe 后功能失效。

不算是bug,因为本来就刷新shell本来是explorer处理的不足导致的,没为这个买单,想着完善了explorer就不用管的。另外重启的时候也重启wind.exe的话也可以的。其实wind第一版是自己注册热键WIN+D,先于explorer启动,这样explorer刷新也不影响的(其实是独立的程序也不用hook,没用explorer都可以工作),但是因为顺便处理了右下角按钮事件,所以得hook消息,explorer重启的话,就失效了。当然最后版本因为处理explorer的右下角点击,所以热键也是处理explorer的,所以本身WIN+D的热键被我删除了。。。

点评

不错,可以加句不间断从重新hook,这样不管启动先后顺序和是否刷新了  详情 回复 发表于 2016-12-5 08:29
回复

使用道具 举报

18#
 楼主| 发表于 2016-12-4 23:24:45 | 只看该作者
换了1060显卡的新电脑,专心娱乐,游戏,生活了,以前搞过的代码懒得再搞了(开发环境啥的都不想装),反正都是一时兴起做做看,
做到能实现的状态,自己就懒得往下细改了,因为没有难度,脑子中补点代码肯定能完成的功能,而且我自己本身压根就不用PE就没有兴趣做下去了。

点评

微軟開發 PE 就是要讓大家用 否則正在使用中系統一出問題 , 要安裝另一完整系統來處理 曠日費時 讓 PE 順手好用人人有責!  详情 回复 发表于 2017-1-14 07:16
回复

使用道具 举报

19#
发表于 2016-12-5 08:29:34 | 只看该作者
本帖最后由 贝壳iT 于 2016-12-5 08:53 编辑
slore 发表于 2016-12-4 23:20
不算是bug,因为本来就刷新shell本来是explorer处理的不足导致的,没为这个买单,想着完善了explorer就不 ...


不错,可以加句不间断从重新hook,这样不管启动先后顺序和是否刷新了
或者判断hook的返回。失效重新注入。
回复

使用道具 举报

20#
发表于 2016-12-8 21:40:00 | 只看该作者
大家要刷新explorer的话建议这样做,建立一个ini,如ReExp.ini,放在windows下面,内容如下:
KILL EXPLORER.EXE
KILL WIND.EXE
_SUB HOOK_EXP
        WAIT 2000
        FIND WIND.EXE,EXIT _SUB
        FIND EXPLORER.EXE,EXEC %WinDir%\WIND.EXE
        CALL HOOK_EXP
_END
CALL HOOK_EXP

然后把以前刷新explorer的快捷方式修改为:PECMD.EXE LOAD %windir%\ReExp.ini
这样可以变通的保证能hook,不过如果在任务管理器里kill掉exp那也就没辙了,呵呵。
回复

使用道具 举报

21#
发表于 2016-12-9 07:15:01 | 只看该作者
谢谢分享
回复

使用道具 举报

22#
发表于 2017-1-14 07:16:11 | 只看该作者
slore 发表于 2016-12-4 23:24
换了1060显卡的新电脑,专心娱乐,游戏,生活了,以前搞过的代码懒得再搞了(开发环境啥的都不想装),反正都 ...

微軟開發 PE 就是要讓大家用
否則正在使用中系統一出問題 , 要安裝另一完整系統來處理
曠日費時

讓 PE 順手好用人人有責!  

回复

使用道具 举报

23#
 楼主| 发表于 2017-4-15 17:31:25 | 只看该作者
遗留问题,更新最新解决方案。 15063也适用。用了下论坛的带explorer.exe的测试了下,OK,发现cmd.exe命令居然没法滚轮回看输出内容,果断回归boot.wim。

点评

boot.wim加第三方桌面是最终的选择 支持楼主  详情 回复 发表于 2017-4-15 17:59
回复

使用道具 举报

24#
发表于 2017-4-15 17:59:10 来自手机 | 只看该作者
slore 发表于 2017-4-15 17:31
遗留问题,更新最新解决方案。 15063也适用。用了下论坛的带explorer.exe的测试了下,OK,发现cmd.exe命令 ...

boot.wim加第三方桌面是最终的选择 支持楼主
回复

使用道具 举报

25#
发表于 2017-8-19 14:48:21 | 只看该作者
有什么更好的方式呢,比如缺少哪个组件,补齐了,在修改好注册表
回复

使用道具 举报

26#
发表于 2017-8-30 14:51:48 | 只看该作者
最新的回复看不懂,我是菜鸟,大神有没有空,能不能说得通俗点给个教程,谢谢

点评

意思就是桌面启动起来了,给他发送个消息,告诉他切换到桌面模式, 具体消息号就是1楼的更新内容。 如果对编程没有概念和经验的话,建议直接使用下面这些成品。 另外,好像最新版本的PECMD.exe也增加了,给系统  详情 回复 发表于 2017-8-30 16:40
回复

使用道具 举报

27#
 楼主| 发表于 2017-8-30 16:40:41 | 只看该作者
qq511535986 发表于 2017-8-30 14:51
最新的回复看不懂,我是菜鸟,大神有没有空,能不能说得通俗点给个教程,谢谢

意思就是桌面启动起来了,给他发送个消息,告诉他切换到桌面模式,
具体消息号就是1楼的更新内容。

如果对编程没有概念和经验的话,建议直接使用下面这些成品。
另外,好像最新版本的PECMD.exe也增加了,给系统桌面发送此消息的处理。

立帮电子
10PE中WIN+D显示桌面 成品
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=397522

haijie1223
解决WIN10PE中WIN+D显示桌面问题
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=388971

2012jiashanni
源代码:真正解决Win10PE 任务栏右键及屏幕右下角显示桌面无效的问题,亲测有效
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=387383
Win10PE显示桌面源代码 易语言+AU3两个源代码,解决手工制作无法显示桌面的问题
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=387361

求道者
Win10PE显示桌面的AHK脚本……[未编译 有源代码]
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=387975

点评

是的,M大已经作了处理,测试也通过了,用户不用关心这个了,kill explorer也直接隐含处理了。关键是用PECMD接管控制的最方便的,用其他的SHELL的可能要另外处理。  详情 回复 发表于 2017-8-30 17:09
回复

使用道具 举报

28#
发表于 2017-8-30 17:09:06 | 只看该作者
slore 发表于 2017-8-30 16:40
意思就是桌面启动起来了,给他发送个消息,告诉他切换到桌面模式,
具体消息号就是1楼的更新内容。

是的,M大已经作了处理,测试也通过了,用户不用关心这个了,kill explorer也直接隐含处理了。关键是用PECMD接管控制的最方便的,用其他的SHELL的可能要另外处理。
回复

使用道具 举报

29#
发表于 2017-9-1 13:48:59 | 只看该作者
slore 发表于 2017-8-30 16:40
意思就是桌面启动起来了,给他发送个消息,告诉他切换到桌面模式,
具体消息号就是1楼的更新内容。

好的,谢谢  我试了一下WIN_D.EXE用着效果可以实现,但是PECMD的两行代码实现不了,可能是我弄错了吧,很感谢
回复

使用道具 举报

30#
发表于 2017-10-13 19:25:04 | 只看该作者
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 05:40

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表