简单解决VNC在笔记本盖合上的情况下无法捕捉画面

发布于 2022-11-14  314 次阅读


原文链接

如题,相信很多在windows下使用vnc而非rdp作为远程桌面的大佬都发现了,vnc在笔记本合上的情况下有很多软件都不能显示,而一把显示屏打开又能正常显示,这是因为把笔记本屏幕合上之后ACPI会向操作系统发送事件,表明显示屏已关闭,致使显卡缓冲区(显存)切换到待机模式,这不会影响使用简单绘图api的程序,但会影响几乎全部使用加速api的程序,而且没有方法关闭这个功能。而rdp不会受其影响,因为windows自带rdp驱动会自行模拟一个基础显卡和显示屏。由于VNC底层上直接对缓冲区进行读取,就会发生这个问题,但不是没有解决的方法。

硬件法(旧):

这个方法很简单,随便买一个hdmi视频模拟插头,接上笔记本后他会模拟一个不存在的屏幕出来,当显示屏关闭(合上)之后windows会自动切换上去,就跟真的屏幕似的。

软件法(新):

这个是我在外寻找很久之后发现的方法,无需便宜的硬件。由于windows判断显示屏是靠盖子合上这个事件而不是显示屏离线本身,那么大家都懂了。我们只需禁用盖子即可。

在设备管理器的系统设备里,找到ACPI盖子,右击禁用(测试在Windows11中无法禁用),或者更新驱动程序,让其变成卷管理器(就是选这个驱动,至于为什么吗,,老外说一开始这个能用就没试别的了,禁用也没试,应该可以具体路径为Microsoft。非常简单,也非常有效

我知道你们很想知道软件法会不会导致屏幕合上后不会熄灭,答案是不会。屏幕是UEFI/BIOS控制的。ACPI盖子只负责接收事件,也不用担心打开后屏幕不自动点亮,UEFI/BIOS也考虑到了这一点。


或许明日太阳西下倦鸟已归时