yamingw 发表于 2021-1-18 23:50:04

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

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的两个文件。
水平有限,有谁知道更方便的办法也请分享一下。
文件及源码。





slore 发表于 2021-1-19 00:16:49

本帖最后由 slore 于 2021-1-19 00:18 编辑

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

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

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

APPBARDATA apBar = { 0 };
apBar.cbSize = sizeof(APPBARDATA);
SHAppBarMessage(ABM_GETSTATE, &apBar);

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

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

2012wjia 发表于 2021-1-19 01:20:26

23456 发表于 2021-1-19 04:18:14

slore 发表于 2021-1-19 00:16
1. WinXShell改变任务栏设定的时候发现,可以修正分辨率问题。

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

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

秋水长天369 发表于 2021-1-19 11:39:29

谢谢分享

2012zhd 发表于 2021-1-19 20:45:23

厉害啊,感谢分享。

WAIGO 发表于 2021-1-20 11:22:47

感谢分享!全屏幕看电影经常都用得到。

928274096 发表于 2022-12-2 20:57:20


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

2013koko 发表于 2022-12-2 21:24:45

全屏补丁的源头居然在这里,感谢,借用了!

zyy 发表于 2022-12-30 21:54:08

本帖最后由 zyy 于 2022-12-30 22:17 编辑

视频全屏补丁
谢谢分享,学习学习{:1_194:}

命令提示符CMD 发表于 2023-1-1 20:05:09

感谢分享~完美解决全屏视频播放问题

microlaf 发表于 2023-1-3 09:16:57

y大,这个补丁实际运行有点问题:就是手动双击执行,进程可见ShellF5.exe和ShellR32.exe。
实际上,在PE区Linghtning及Kuer两位的x64 PE中测试,使用PECMD来运行:
EXEC %CurDir%\ShellF5\ShellF5.exe则进程中只有ShellF5.exe,而没有启动ShellR32.exe。也就是EXEC执行与手动双击运行结果不一致。这导致手动时全屏补丁没有生效,任务栏仍挡在前面。

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

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


yamingw 发表于 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位

microlaf 发表于 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,也可以达到全屏时隐藏任务栏效果。


microlaf 发表于 2023-1-3 10:27:08

或许是使用的PE是兼容32位的x64PE,造成这种结果?
我所不理解的是EXEC跟手动执行不一致,这个费解

yamingw 发表于 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);
    }
可能这个判断有问题,自己如果有能力可以改写

microlaf 发表于 2023-1-3 16:52:18

yamingw 发表于 2023-1-3 16:04
if (is64BitOS())
    {
      ShellExecute(NULL, _T("open"), _T("ShellR32.exe"), _T(""), _T("" ...

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

microlaf 发表于 2023-1-3 16:57:35

本帖最后由 microlaf 于 2023-1-3 17:00 编辑

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

yamingw 发表于 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

microlaf 发表于 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:
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也是可以的。


microlaf 发表于 2023-1-3 23:49:59

使用的就是在kuer x64PE下。
这个补丁只要退出进程即可反复测试,立即可见测试效果的

深谷憂狼 发表于 2023-2-20 16:03:15

使用了,谢谢分享

absman1972 发表于 2023-2-21 14:48:52

謝謝分享

chshrm 发表于 2023-4-19 21:48:56

全屏播放的出处在这,一顿好找!

absman1972 发表于 2023-4-19 22:07:19

chshrm 发表于 2023-4-19 21:48
全屏播放的出处在这,一顿好找!

这是一个被低估的好用工具

CYYspace 发表于 2023-8-10 15:53:39

特别有用!感谢分享

SYSTEM-BSOD-ZFS 发表于 2024-1-1 08:57:27

Good!

SYSTEM-BSOD-ZFS 发表于 2024-1-1 09:10:56

楼主,可不可以发一个网盘链接,像我这样的下载不了附件

hp53314 发表于 2024-1-4 15:58:10

我怎么下载不了

hp53314 发表于 2024-1-5 13:52:19

学习
页: [1] 2
查看完整版本: 试图解决WinPE的几个小问题,需要的自取