遠端桌面指定要開啟的監視器

遠端桌面指定要開啟的監視器

有沒有辦法讓遠端桌面 v6 在雙顯示器設定中的特定顯示器上開啟?

我知道它支援雙顯示器,並且很容易使其使用兩個顯示器,但我真正想要的是所有 RDP 會話都在我的輔助顯示器上打開。我將所有常用連接保存在 .RDP 檔案中,目前我有一個大雜燴,其中一些在我的主顯示器上打開,另一些在我的輔助顯示器上打開。

在瀏覽 RDP 檔案時,我無法辨別是什麼設定正在控制它(我懷疑它不在這個文件中)。

那麼,我該如何控制呢?順便說一句,我正在運行 Win7 作為我的客戶端,並且幾乎只連接到 Server 2008 R2 電腦。

答案1

RDP 檔案中有螢幕位置和模式選項,可透過設定 RDP 用戶端視窗位置和大小來控制這一點,但沒有明確的選項指定哪個顯示器,您必須使用這些設定並選擇提供結果的設定您想要的顯示器組合。您也可以在您定義的視窗區域內獨立設定遠端桌面的寬度和高度。

關鍵設定是

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) 是虛擬桌面的左上角,r、b 值是絕對寬度和高度,因此:

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

開啟 800x600 的窗口,距最左邊顯示器的左邊緣 100 像素,距上緣向下 100 像素。

螢幕模式選項告訴 TS 用戶端以視窗模式或全螢幕模式開啟

screen mode id:i:x

對於視窗模式,將 x 設定為 1;對於 RDP「全螢幕」模式,將 x 設定為 2。 TS 用戶端將在後一種模式中選擇最佳顯示器,具體取決於哪個實體顯示器與 winposstr 設定中的 t、l、r、b 要求具有最佳重疊。

遠端桌面大小由以下兩個 rdp 檔案設定設定。

desktopwidth:i:x
desktopheight:i:y

其中 x 和 y 是您想要的桌面尺寸(以像素為單位)。顯然,如果它大於您選擇的視窗大小,您將需要處理捲軸,如果它較小,那麼桌面周圍將有未使用的空間。如果您選擇視窗模式,則您選擇的視窗大小必須比遠端桌面大小大一些像素,該像素數將根據桌面的 dpi 而變化,但傳統上,寬度和寬度約為 6 個額外像素27 左右高度(標題欄)。

遠端桌面部落格有一篇關於此的文章,您可以找到這裡。對這些設定之間的相互關係進行了一些詳細的深入分析Ohman Automation Corp 網站上的這篇文章

答案2

分析 .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 的值

您將使用的數字取決於您擁有的顯示器數量、每個顯示器的螢幕解析度以及您選擇作為主顯示器的顯示器。

左邊緣位置決定顯示器

最後四個數字中的第一個是最重要的,表示視窗左邊緣的位置。如果您的主顯示器位於中間,且左側和右側都有顯示器,則您將為左側的顯示器使用負數,並為右側的顯示器使用正數。

例如,如果左側有兩台顯示器,則每台顯示器的解析度均為 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

答案3

我今天試著自己解決同樣的問題,並不斷尋找這些方向的變體,但無法讓它們發揮作用。對於其他遇到困難的人'Winpoststr'解決方案我發現了一個更簡單的解決方案,到目前為止給我帶來了零問題並完成了相同的事情。我使用的是 Windows 10。

span monitors:i:1
multimon:i:1
selectedmonitors:s:0,1,2

尋找或新增'選定的監視器:s:'行到您的 RDP 配置文件,然後只需先輸入主顯示器。

若要取得顯示器的顯示,請開啟命令提示字元並執行命令“mstsc/l”。這將返回一個窗口,列出您的顯示器 ID 號碼和位置 -請注意,這些數字與您在顯示設定中看到的數字不同。

就我而言,我有三個顯示器並收到了回應:

0: 1024  x 768; (-1024, 11, -1, 778)
1: 1920 x 1080; (2560, 11, 4479, 1090)
2: 2560 x 1440; (0, 0, 2559, 1439)

由於我只想為此特定連接使用兩個特定監視器(0 和 2),並且我希望監視器“2”成為主監視器,我的配置現在顯示:

selectedmonitors:s:2,0

答案4

使用螢幕座標的答案實施起來很繁瑣,並且如果您經常在不同的螢幕設定之間更改(例如輪用辦公桌或混合工作)或想要與其他人共享 RDP 文件,則效果不佳。

以下設定來自斯科特·漢塞爾曼的博客對我來說效果很好:

screen mode id:i:2
span monitors:i:1
use multimon:i:1
selectedmonitors:s:1,2

最後一行是唯一需要根據您的情況進行客製化的一行。我有 3 個螢幕,透過在運行選單中運行“mstsc /l”,我可以看到它從左到右將它們編號為 0,1,2,因此我可以在以下選項之間進行選擇:

selectedmonitors:s:0,1 //first 2 screens
selectedmonitors:s:1,2 //last 2 screens
selectedmonitors:s:0,1,2 //all 3 screens
selectedmonitors:s:0 // first screen only
selectedmonitors:s:1 // second screen only
selectedmonitors:s:2 // third screen only
selectedmonitors:s:0,2 //this doesn't work so just does second screen

相關內容