才知道, mstsc 可以自由设置分辨率和窗口位置

2021-12-21 19:16:34 +08:00
 ungrown
按理说其实官方给出了足够详细的文档:
https://social.technet.microsoft.com/wiki/contents/articles/665.how-to-set-the-monitor-for-a-remote-desktop-session-in-a-multi-monitor-setup.aspx
不过貌似大多数博客文章问答资料基本上都不提这个文档,我也是后来搜 winposstr 这个关键词的时候发现这份文档的。

其实早在很多年前的菜鸟阶段我就挺喜欢 Windows 自带的远程桌面客户端 mstsc 的,觉得它功能全、连接快、性能流畅。
但后来,也就几年前,真正开始对远程桌面有需求了,却发现 mstsc 不能满足需要。我需要让远端桌面尽可能占满屏幕,但同时在底端显示本地的任务栏,这样能时刻关注本机状态,及时处理事件。mstsc 窗口模式下不能自动设置“非整”分辨率,而是对整个画面进行失真缩放,全屏模式则更难用。
以至于被迫安装了 mRemoteNG 作为替代,但这货经常出现“画面中某个动画内容的矩形范围冻结僵死并保持原位置遮盖”的问题,用得一点不顺心。
今天再接再厉又一次查找让 mstsc 无失真窗口化并保留本地任务栏的方法,功夫不负有心人,在某个英文论坛里的帖子里看到了思路,举一反三后成功实现了。

其实就是改 mstsc 的配置文件,比如那个默认的 Default.rdp:
- 把 screen mode 改成 id:i:1
- 把 desktopheight 适当减小,在屏幕高度的基础上减掉任务栏的高度 40 ,再减掉窗口标题栏的高度 23
- 把 winposstr 那一行删掉,让 mstsc 的窗口位置固定在左上角
搞定!
5088 次点击
所在节点    Windows
13 条回复
xyfan
2021-12-22 01:33:19 +08:00
mstsc 是可以自适应分辨率的,分辨率随窗口大小变化。包括手机端,mac 端等不同微软官方 rdp 客户端上都有这个功能,很久没有遇到过失真缩放了。
ungrown
2021-12-22 08:56:46 +08:00
@xyfan 不,它不会,也没看到有对应的选项。移动端、Mac 平台我不知道,win 自带的 mstsc 是不会自动根据窗口大小来变更分辨率的,只会按照屏幕分辨率来自动设置(这是固定值
root01
2021-12-22 08:57:38 +08:00
win 我用 SimpleRemote 这个远程工具
ungrown
2021-12-22 09:01:06 +08:00
@xyfan 为什么有些人总喜欢顶着别人的真实的实践认识来唱反调,或者至少给出一些尝试性的建议,比如你完全可以跟我说“你试试在标题栏右键看看菜单里有没有自动变更分辨率的选项呢”,这好歹也算建设性发言。否则,如果我不是已经反复确认过 mstsc 确实没有这项功能的话,岂不是又要因为你这随口一说的错误二手经验而浪费不少时间精力?
krixaar
2021-12-22 09:53:50 +08:00
我也记得很久以前就有 Smart Sizing 了,虽然没用过: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ff393693(v=ws.10)?redirectedfrom=MSDN

但是看描述好像确实是 OP 描述的这个意思?
krixaar
2021-12-22 09:58:13 +08:00
@krixaar #5 手头没东西试,如果 Smart Sizing 不是,那么 mstsc 还有 /w: /h:两个启动参数直接用,稍微方便那么一点点。
ungrown
2021-12-22 11:38:37 +08:00
@krixaar #6
启动参数和配置文件里的宽高应该是一回事,命令行确实在某些场景下更方便灵活,但思路是一致的。
那个 smart sizing 看描述就是变形缩放,甚至都不是锁定比例的缩放,所以没必要纠结 mstsc 能不能自适应分辨率这个问题了,可以认定它就是没有这个功能。
Shilion
2021-12-22 12:11:14 +08:00
同样走 RDP 协议的 Remote desktop (我猜测 1 楼也用的这个客户端 https://www.microsoft.com/en-us/p/microsoft-remote-desktop/9wzdncrfj3ps )就可以自动适应分辨率。
ungrown
2021-12-22 12:12:18 +08:00
@root01 #3
https://github.com/beckzhu/SimpleRemote
试用了一下,挺好的,比 mRemoteNG 好多了,但因为 mstsc 是自带的,所以这个就当个后备工具吧
ungrown
2021-12-22 12:15:55 +08:00
@Shilion #8
这个是知晓的,但是我装不了,我自己的设备都是 win10 LTSB 2015 或者 2016 ,版本太低了,更何况 LTSB 要装商店 app 还需要额外配置。
话说我看这个 app 的平台要求,怎么 win10 需要 16299 及以上,但却支持 win8.1 ?
Osk
2021-12-26 03:45:51 +08:00
官方的 3 种:
uwp remote desktop: 支持动态调整分辨率, 但垃圾, 证书指纹乱显示(或者说没文档说明), 其它平台此 app 是 sha1 指纹; 长时间链接会死掉. 不知道修复没有.
mstsc: 不支持动态调整分辨率...
Remote Desktop (MSRDC): 支持动态调整分辨率, 然而, 这鬼软件没有输入 ip:port 这种连接方式? 不过可以周转, 用 mstsc 存配置为 .rdp 文件, 然后用它打开就行.
rdcman: 似乎就是 mstsc 套壳, 管理一堆服务器时很好用, 现在加入 sysinternal suits 了
Osk
2021-12-26 03:50:22 +08:00
对了, mstsc 最 6 的功能还是 RemoteApp (vail/rail), 远程窗口和本地程序窗口无缝整合, 只显示窗口内容, 而不是整个远程端的桌面, 远程程序就像跑在本机一样显示在窗口中, 大部分情况下比动态调整分辨率好用多了.
hanssx
2022-07-17 15:02:23 +08:00
这样可以,mstsc /w:3840 /h:2160

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/823604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX