MSTSC configurado para tela cheia no segundo monitor

0

Eu tenho um laptop com um monitor conectado, então tenho dois monitores. Eu quero definir minha sessão de cliente MSTSC para o tamanho do meu monitor secundário - no entanto eu viajo muito entre escritórios e assim a segunda tela muda de tamanho - definindo as configurações do cliente para cheio configura para o tamanho do meu monitor principal como mencionado < a href="https://superuser.com/questions/621211/remote-desktop-fullscreen-is-limited-to-the-resolution-of-my-primary-monitor-h"> aqui . Trocar meu primário para o monitor anexado não funcionará como então todos os ícones seriam cobertos pela sessão do MSTSC.

Eu quero isso como quando o MSTSC está tela cheia na segunda tela ele captura as teclas especiais ALT-TAB, etc, mas eu ainda posso apenas clicar nos aplicativos na tela principal Atualmente eu tenho um número de diferentes arquivos RDP salvos - um para cada resolução possível. Mas às vezes não consigo adivinhar o tamanho correto.

Eu provavelmente posso escrever um roteiro para isso - alguém já fez isso? Ou até mesmo escreveu um script que determina se há uma tela secundária e qual resolução as duas telas são? Powershell seria melhor que o VBScript.

Esta questão é semelhante a [this] (Como usar o RDMan com vários monitores e dimensionar para tela cheia quando a tela do cliente é maior do que a exibição do host?), mas eu quero usar o MSTSC devido ao recurso alt-tab que eu não pense que funciona com o RDPMan.

Obrigado

    
por Ross 10.05.2017 / 00:39

1 resposta

0

No final, encontrei alguns artigos e escrevi o seguinte roteiro de Powershell - Você dá o nome do servidor - que deve ser um arquivo RDP já existente

$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) 
    
por 15.05.2017 / 00:58