У меня есть ноутбук с подключенным дисплеем, поэтому у меня есть два монитора. Я хочу, чтобы размер сеанса клиента MSTSC соответствовал размеру моего дополнительного монитора - однако я часто путешествую между офисами и размер второго экрана изменяется. Если для параметров клиента установлено значение ПОЛНЫЙ, для него устанавливается размер моего основного монитора, как упомянуто здесь. , Переключение моего основного на подключенный дисплей не будет работать, так как тогда все значки будут покрыты сеансом MSTSC.

Я хочу, чтобы это происходило, когда на втором экране MSTSC отображается полный экран, он захватывает специальные клавиши ALT-TAB и т.д., Но я все еще могу просто щелкнуть приложения на главном экране. В настоящее время у меня есть несколько различных сохраненных файлов RDP - один для каждое возможное решение. Но я иногда не могу угадать правильный размер.

Я, наверное, могу написать сценарий для этого - кто-нибудь сделал это? Или даже написал сценарий, который определяет, есть ли дополнительный экран и какое разрешение у двух экранов? Powershell будет лучше, чем VBScript.

Этот вопрос похож на [этот](Как использовать RDMan с несколькими мониторами и масштабировать до полного экрана, когда дисплей клиента больше дисплея хоста?) но я хочу использовать MSTSC из-за возможности alt-tab, которая, я думаю, не работает с RDPMan.

Спасибо

1 ответ1

0

В конце я нашел несколько статей и написал следующий скрипт Powershell - вы называете его именем сервера - который должен быть уже существующим сохраненным файлом RDP.

$RDPFile=$Args[0]

Add-Type -AssemblyName System.Windows.Forms
$Screens = [System.Windows.Forms.Screen]::AllScreens 
# Look for a non-primary screen - @todo - what if I have three screens?
$Screen = $Screens | where-object {$_.Primary -eq $FALSE}[0]
# If we dont have a screen which is not a Primary then use the primary    
if ($Screen -eq $Null) { 
  $Screen = $Screens | where-object {$_.Primary -eq $TRUE}[0]
}
# Now connect using an RDP file - but set the width and height and full screen mode
 mstsc.exe E:\cmds\RDP\$($RDPFILE).RDP /f /w:$($Screen.Bounds.Width) /h:$($Screen.Bounds.Height) 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .