远程桌面指定打开的监视器

在双显示器设置中,是否有任何方法可以在特定显示器上打开Remote Desktop v6?

我知道它支持双显示器,很容易让它使用两个显示器,但我真正想要的是我所有的RDP会话都在我的辅助显示器上打开。 我将所有经常使用的连接都保存在.RDP文件中,目前我有一个混杂的混合模式,其中一些在我的辅助监视器上打开。

在浏览RDP文件时,我无法辨别出什么设置控制着这个(我怀疑它不在这个文件中)。

那么,我该如何控制呢? 顺便说一句,我正在运行Win7作为我的客户端,几乎完全连接到Server 2008 R2机器。

在RDP文件中有屏幕位置和模式选项,它们通过设置RDP客户端窗口的位置和大小来控制这个选项,但是没有明确的选项来指定哪个监视器,你将必须使用这些设置并select那些提供结果的选项你想在你的显示器组合。 您还可以在您定义的窗口区域内独立设置远程桌面的宽度和高度。

关键设置是

winposstr:s:0,m,l,t,r,b m = mode ( 1 = use coords for window position, 3 = open as a maximized window ) l = left t = top r = right (ie Window width) b = bottom (ie Window height) 

l,t坐标相对于标准的Windows原点,其中(0,0)是虚拟桌面的左上angular,r,b值是绝对宽度和高度,因此:

 winposstr:s:0,1,100,100,800,600 

从最左边的显示器的左边缘开始以100像素为单位打开一个800×600的窗口,从上边缘向下100像素。

Screen Mode(屏幕模式)选项告诉TS Client以Windowed或Full Screen模式打开

 screen mode id:i:x 

为窗口模式设置x为1,在RDP“全屏”模式下设置为2。 TS客户端将根据哪个物理监视器与winposstr设置中的t,l,r,b要求有最好的重叠来select最佳的监视器。

远程桌面大小由以下两个rdp文件设置设置。

 desktopwidth:i:x desktopheight:i:y 

其中x和y是所需桌面的尺寸(以像素为单位)。 显然,如果这比你select的窗口大小大,你将有滚动条来处理,如果它更小,那么你将在桌面周围有未使用的空间。 如果您selectWindowed模式,那么您select的窗口大小必须大于远程桌面大小的一定数量的像素,这将取决于您的桌面的dpi的分辨率,但传统上这将是约6额外像素的宽度和高27左右(标题栏)。

远程桌面博客有关于此的文章,您可以在这里find。 在Ohman Automation Corp网站上的这篇文章中,对这些设置之间的相互关系进行了深入分析。

分析.rdp文件

.rdp文件的内容如下所示:

 screen mode id:i:2 use multimon:i:0 desktopwidth:i:1680 desktopheight:i:1050 session bpp:i:32 winposstr:s:0,1,-1680,0,-115,1050 [….] 

寻找关键字winposstr 。 最重要的参数是winposstr之后的数字。 忽略最初的“:s:0,1”,并关注最后四个逗号分隔的数字。

最后四个数字以像素表示远程会话窗口的左,右上,右边缘的位置。

这些数字实际上指的是窗口恢复时的窗口位置,但窗口左边缘的像素位置非常重要,因为它还决定了窗口最大化时远程会话将使用的监视器。

计算winposstr的值

您将使用的数字取决于您拥有的显示器数量,每个显示器的屏幕分辨率以及您select作为主显示器的显示器。

左边位置决定监视器

最后四个数字中最重要的第一个数字表示窗口左边的位置。 如果您的主显示器位于中央,并且显示器的左侧和右侧都有显示器,则左侧显示器使用负数,右侧使用正数。

例如,如果左侧有两个监视器,每个监视器的分辨率都是1680 x 1050,则使用-1680将监视器上的会话窗口放在左侧,然后加倍( -3360 )将窗口放在最左边的显示器。

 winposstr:s:0,1,**-1680**,0,0,1050 winposstr:s:0,1,**-3360**,0,-1680,1050 

如果主显示器的分辨率为1200 x 1920,请使用1200将窗口放在显示器右侧。 这是可行的,因为像素位置是主监视器离开的位置(并且右侧的监视器开始)。

 winposstr:s:0,1,**1200**,0,2880,1050 

如果右侧有两个显示器,分辨率为1680 x 1050,并且想要将窗口放在最右侧的显示器上,只需添加1200到1680即可获得2880。

 winposstr:s:0,1,**2880**,0,4560,1050 

顶部和底部边缘其他数字只有在窗口恢复(未最大化)时才真正起作用,并且可以根据需要进行调整。

第二个数字(从第三个数字开始)表示窗口的最顶部,所以除非有特殊要求,否则可以将此数字保留为0。 第四个(最后一个)数字是窗口的垂直分辨率(=底部)。 您可以将其保持在显示器的最大垂直分辨率,如上例所示。

 winposstr:s:0,1,1200,**0**, 2880,**1050** 

右边缘窗口的右边缘由最后一个数字旁边表示。 除非另有说明,否则可以将其设置为与最大化窗口相同的大小。 按照上面的显示器分辨率示例,以下是计算结果:

 Monitor Right Edge Calculation Winposstr Value Leftmost -3360 + 1680 = -1680 winposstr:s:0,1,-3360,0,**-1680**,1050 Immediate left -1680 + 1680 = 0 winposstr:s:0,1,-1680,0,**0**,1050 Immediate right 1200 + 1680 = 2880 winposstr:s:0,1,1200,0,**2880**,1050 Rightmost 1200 + 1680 + 1680 = 4560 winposstr:s:0,1,2880,0,**4560**,1050