无忧启动论坛

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

[分享] 试图解决WinPE的几个小问题,需要的自取

    [复制链接]
跳转到指定楼层
1#
发表于 2021-1-18 23:50:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1、修改分辨率时,任务栏位置不对;
2、连接多显示器时,壁纸消失;
3、应用全屏时,任务栏挡在前面。
需要前两个功能,只需ShellF5(x64)或ShellR32(x86)
或自己编程:
case WM_DISPLAYCHANGE:
        HWND hwnd = FindWindow(_T("Shell_TrayWnd"), _T(""));
        SendMessageW(hwnd, 1464, 0, 0);//HandleDisplayChange
        HWND progman = FindWindow(L"ProgMan", NULL);
        SendMessageTimeout(progman, WM_USER + SPI_SETFONTSMOOTHING, 0, 0, SMTO_NORMAL, 1000, nullptr);//0x44B(1099)

需要第三个功能x64系统4个文件全要(只需运行ShellF5),x86需要带32的两个文件。
水平有限,有谁知道更方便的办法也请分享一下。
文件及源码。
ShellF5.7z (363.73 KB, 下载次数: 220) winpe.7z (16.47 KB, 下载次数: 159)




评分

参与人数 6无忧币 +30 收起 理由
absman1972 + 5 很给力!
深谷憂狼 + 5 很给力!
cuicongyuan + 5 很给力!
microlaf + 5 连击点赞!
2013koko + 5 很给力!
928274096 + 5 很给力!

查看全部评分

2#
发表于 2021-1-19 00:16:49 | 只看该作者
本帖最后由 slore 于 2021-1-19 00:18 编辑

1. WinXShell改变任务栏设定的时候发现,可以修正分辨率问题。

获取任务栏状态(位置,是否隐藏等)的那个API调用下就行了。

所以WinXShell的显示设定进行分辨率设定,会自动修正任务栏。

  1. APPBARDATA apBar = { 0 };
  2. apBar.cbSize = sizeof(APPBARDATA);
  3. SHAppBarMessage(ABM_GETSTATE, &apBar);
复制代码


2. 没多显示器不太清楚。

3. PE下很少全屏,可以写个监控最上层窗口大小和桌面分辨率比较,
强制设置到最前 或者 隐藏任务栏这样曲线救国。

点评

s大这个问题和你说过,确实会有时候没起修正作用  详情 回复 发表于 2021-1-19 04:18
回复

使用道具 举报

3#
发表于 2021-1-19 01:20:26 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

4#
发表于 2021-1-19 04:18:14 来自手机 | 只看该作者
slore 发表于 2021-1-19 00:16
1. WinXShell改变任务栏设定的时候发现,可以修正分辨率问题。

获取任务栏状态(位置,是否隐藏等)的那个 ...

s大这个问题和你说过,确实会有时候没起修正作用
回复

使用道具 举报

5#
发表于 2021-1-19 11:39:29 | 只看该作者
谢谢分享
回复

使用道具 举报

6#
发表于 2021-1-19 20:45:23 | 只看该作者
厉害啊,感谢分享。
回复

使用道具 举报

7#
发表于 2021-1-20 11:22:47 | 只看该作者
感谢分享!全屏幕看电影经常都用得到。
回复

使用道具 举报

8#
发表于 2022-12-2 20:57:20 | 只看该作者

感谢分享!能否休整下22621的全屏
回复

使用道具 举报

9#
发表于 2022-12-2 21:24:45 | 只看该作者
全屏补丁的源头居然在这里,感谢,借用了!
回复

使用道具 举报

10#
发表于 2022-12-30 21:54:08 | 只看该作者
本帖最后由 zyy 于 2022-12-30 22:17 编辑

视频全屏补丁
谢谢分享,学习学习
回复

使用道具 举报

11#
发表于 2023-1-1 20:05:09 | 只看该作者
感谢分享~完美解决全屏视频播放问题
回复

使用道具 举报

12#
发表于 2023-1-3 09:16:57 | 只看该作者
y大,这个补丁实际运行有点问题:就是手动双击执行,进程可见ShellF5.exe和ShellR32.exe。
实际上,在PE区Linghtning及Kuer两位的x64 PE中测试,使用PECMD来运行:
  1. EXEC %CurDir%\ShellF5\ShellF5.exe
复制代码
则进程中只有ShellF5.exe,而没有启动ShellR32.exe。也就是EXEC执行与手动双击运行结果不一致。这导致手动时全屏补丁没有生效,任务栏仍挡在前面。

但在上述PE中单独运行或者EXEC执行ShellR32.exe,任务栏在全屏时被隐藏,补丁生效。
也就是实际生效的是ShellR32.exe。

我所奇怪的是64位PE下,EXEC ShellF5.exe为何没有启动ShellR32.exe?


点评

我是这样用的: RUNS PECMD.EXE EXEC !"%SystemRoot%\ShellF5.exe",RefreshDesktop 你exec时可能太早,在explorer启动之后较好。(猜测未验证)  详情 回复 发表于 2023-1-3 09:49
回复

使用道具 举报

13#
 楼主| 发表于 2023-1-3 09:49:19 | 只看该作者
本帖最后由 yamingw 于 2023-1-3 09:50 编辑
microlaf 发表于 2023-1-3 09:16
y大,这个补丁实际运行有点问题:就是手动双击执行,进程可见ShellF5.exe和ShellR32.exe。
实际上,在PE区 ...

我是这样用的:
RUNS PECMD.EXE EXEC !"%SystemRoot%\ShellF5.exe",RefreshDesktop
你exec时可能太早,在explorer启动之后较好。(猜测未验证)shellf5是监控64位,R32是监控32位

点评

哦,那我注释掉,弄个热键等稳定下来试试。  详情 回复 发表于 2023-1-3 10:01
回复

使用道具 举报

14#
发表于 2023-1-3 10:01:35 | 只看该作者
本帖最后由 microlaf 于 2023-1-3 10:24 编辑
yamingw 发表于 2023-1-3 09:49
我是这样用的:
RUNS PECMD.EXE EXEC !"%SystemRoot%\ShellF5.exe",RefreshDesktop
你exec时可能太早, ...

哦,那我注释掉,弄个热键等稳定下来试试。
进入PE,等待足够长时间,按热键F9,EXEC shellF5.exe,还是只有它自己出现在进程里,没有shellR32出现。





按F7,杀进程然后单独执行两个exe,就没问题:


当然,kill ShellF5.exe或者单独执行ShellR32.exe,也可以达到全屏时隐藏任务栏效果。


回复

使用道具 举报

15#
发表于 2023-1-3 10:27:08 | 只看该作者
或许是使用的PE是兼容32位的x64PE,造成这种结果?
我所不理解的是EXEC跟手动执行不一致,这个费解

点评

if (is64BitOS()) { ShellExecute(NULL, _T("open"), _T("ShellR32.exe"), _T(""), _T(""), SW_SHOW); } 可能这个判断有问题,自己如果有能力可以改写  详情 回复 发表于 2023-1-3 16:04
回复

使用道具 举报

16#
 楼主| 发表于 2023-1-3 16:04:24 | 只看该作者
microlaf 发表于 2023-1-3 10:27
或许是使用的PE是兼容32位的x64PE,造成这种结果?
我所不理解的是EXEC跟手动执行不一致,这个费解

if (is64BitOS())
    {
        ShellExecute(NULL, _T("open"), _T("ShellR32.exe"), _T(""), _T(""), SW_SHOW);
    }
可能这个判断有问题,自己如果有能力可以改写

点评

被编程玩的人不搞编程啊,y大修正一下看看  详情 回复 发表于 2023-1-3 16:52
回复

使用道具 举报

17#
发表于 2023-1-3 16:52:18 | 只看该作者
yamingw 发表于 2023-1-3 16:04
if (is64BitOS())
    {
        ShellExecute(NULL, _T("open"), _T("ShellR32.exe"), _T(""), _T("" ...

被编程玩的人不搞编程啊,y大修正一下看看
回复

使用道具 举报

18#
发表于 2023-1-3 16:57:35 | 只看该作者
本帖最后由 microlaf 于 2023-1-3 17:00 编辑

我觉得可以变一下判断逻辑,如果x64下支持32位程序,则直接运行ShellR32.exe,否则执行ShellF5.exe,其内部再调用ShellR32.exe。

点评

试了一下 Kuer x64 PE,将4个文件放在system32文件夹下,然后 EXEC %SystemRoot%\System32\ShellF5.exe 没有问题。 你的是 EXEC %CurDir%\ShellF5\ShellF5.exe  详情 回复 发表于 2023-1-3 23:08
回复

使用道具 举报

19#
 楼主| 发表于 2023-1-3 23:08:51 | 只看该作者
microlaf 发表于 2023-1-3 16:57
我觉得可以变一下判断逻辑,如果x64下支持32位程序,则直接运行ShellR32.exe,否则执行ShellF5.exe,其内部 ...

试了一下 Kuer x64 PE,将4个文件放在system32文件夹下,然后
EXEC %SystemRoot%\System32\ShellF5.exe
没有问题。
你的是
EXEC %CurDir%\ShellF5\ShellF5.exe

点评

放到system32下的确可以EXEC %SystemRoot%\System32\ShellF5.exe来启动两个exe,然而,全屏补丁没有生效:[attachimg]516520[/attachimg] 测试放到system32下,单独执行shellR32.exe也不行。 但我重新定义热键  详情 回复 发表于 2023-1-3 23:47
回复

使用道具 举报

20#
发表于 2023-1-3 23:47:39 | 只看该作者
yamingw 发表于 2023-1-3 23:08
试了一下 Kuer x64 PE,将4个文件放在system32文件夹下,然后
EXEC %SystemRoot%\System32\ShellF5.exe
...

放到system32下的确可以EXEC %SystemRoot%\System32\ShellF5.exe来启动两个exe,然而,全屏补丁没有生效:

测试放到system32下,单独执行shellR32.exe也不行。

但我重新定义热键F9:
  1. HOTK F9,TEAM Kill ShellF5.exe|Kill ShellR32.exe|EXEC -hide "%ProgramFiles%\SOFT\ShellF5\ShellF5.exe"|EXEC -hide "%ProgramFiles%\SOFT\ShellF5\ShellR32.exe" `网页视频全屏补丁
复制代码
按F9杀原有进程重新加载其它位置的两个exe,补丁可生效。

其它位置,单独EXEC shellR32.exe也是可以的。


回复

使用道具 举报

21#
发表于 2023-1-3 23:49:59 | 只看该作者
使用的就是在kuer x64PE下。
这个补丁只要退出进程即可反复测试,立即可见测试效果的
回复

使用道具 举报

22#
发表于 2023-2-20 16:03:15 | 只看该作者
使用了,谢谢分享
回复

使用道具 举报

23#
发表于 2023-4-19 21:48:56 | 只看该作者
全屏播放的出处在这,一顿好找!

点评

这是一个被低估的好用工具  详情 回复 发表于 2023-4-19 22:07
回复

使用道具 举报

24#
发表于 2023-8-10 15:53:39 | 只看该作者
特别有用!感谢分享
回复

使用道具 举报

25#
发表于 2024-1-1 08:57:27 | 只看该作者
Good!
回复

使用道具 举报

26#
发表于 2024-1-1 09:10:56 | 只看该作者
楼主,可不可以发一个网盘链接,像我这样的下载不了附件
回复

使用道具 举报

27#
发表于 2024-1-4 15:58:10 | 只看该作者
我怎么下载不了
回复

使用道具 举报

28#
发表于 2024-1-5 13:52:19 | 只看该作者
学习
回复

使用道具 举报

29#
发表于 2024-1-5 18:20:27 | 只看该作者
学习学习
回复

使用道具 举报

30#
发表于 2024-1-5 21:37:48 | 只看该作者
很给力!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-21 21:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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