Conseguir que o RDP respeite os parâmetros de largura e altura?

6

Eu verifiquei esta pergunta, mas minha situação é um pouco diferente.

Eu tenho um computador de trabalho com 2 monitores, cada um rodando em 1650x1050. Eu tenho uma configuração de 3 monitores em casa. Ambos os sistemas executam o Windows 7. Todos os três monitores no sistema doméstico são executados em 1920x1080, com um monitor configurado individualmente e os outros dois configurados como um único monitor 3840x1080. Gostaria que minha sessão RDP fosse executada em um monitor 3840x1080, mas há um problema.

Eu configurei a sessão RDP do meu computador doméstico para que o trabalho seja executado em 3840x1080:

mstsc.exe default.rdp /w:3840 /h:1080

Isso funciona cerca da metade do tempo. Na outra metade, a janela remota aparece com uma resolução de 4096x1080 (acho que essa é provavelmente a resolução "máxima" padrão ou algo assim).

Parece ter algo a ver com a inicialização da sessão no meu monitor "único" ou no meu outro monitor "duplo". Infelizmente, eu tenho o monitor "único" configurado como minha exibição "principal" no Windows, e é aí que ele quer começar. Eu tenho que mexer com a posição do atalho da área de trabalho e mover a janela de login para o outro monitor, e ainda assim ele funciona cerca da metade do tempo.

Alguém tem uma maneira de (1) fazer o RDP aceitar forçosamente essa resolução 3840x1080 ou (2) forçá-lo a iniciar no monitor secundário?

user1071914
fonte

Respostas:

4

Você pode fazer isso ajustando os valores winposstrdentro do próprio arquivo rdp. Aqui está uma explicação detalhada

Cálculo dos valores para winposstr

Os números que você usará dependem de quantos monitores você tem, das resoluções de tela de cada um e de qual monitor você selecionou como seu monitor principal.

A posição da borda esquerda determina o monitor

O primeiro dos últimos quatro números, que é o mais importante, indica a posição da borda esquerda da janela. Se o seu monitor principal estiver no centro e você tiver monitores à esquerda e à direita, você usará um número negativo para os monitores à esquerda e um número positivo para os monitores à direita.

Por exemplo, se você tiver dois monitores à esquerda com resolução de 1680 x 1050, use -1680 para colocar a janela da sessão no monitor à esquerda imediata e o dobro (-3360) para colocar a janela na monitor mais à esquerda.

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

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

Se o seu monitor principal tiver uma resolução de 1200 x 1920, use 1200 para colocar a janela no monitor imediatamente à direita. Isso funciona porque a posição do pixel é onde o monitor principal é interrompido (e o monitor à direita começa).

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

Se você tem dois monitores à direita com uma resolução de 1680 x 1050 e deseja colocar a janela no monitor à direita, basta adicionar 1200 a 1680 para obter 2880.

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

Bordas superior e inferior
Os outros números só entram em cena quando a janela é restaurada (não maximizada) e pode ser ajustada a seu gosto.

O segundo número (terceiro do final) indica a extremidade superior da janela, portanto, você pode deixar esse número em 0, a menos que tenha requisitos especiais. O quarto (último) número é a resolução vertical (= inferior) da janela. Você pode deixar isso com a resolução vertical máxima do monitor, como nos exemplos acima.

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

Borda
direita A borda direita da janela é expressa pelo próximo ao último número. A menos que você prefira o contrário, isso pode ser definido para o mesmo tamanho da janela maximizada.

╔══════════════════╦════════════════════════════╦═ ═══════════════════════════════════╗
║ Monitor Calcul Cálculo da borda direita Value Valor Winposstr ║
╠══════════════════╬════════════════════════════╬═ ═══════════════════════════════════╣
Most Mais à esquerda ║ -3360 + 1680 = -1680 ║ winposstr: s: 0,1, -3360,0, -1680,1050 ║
Left Esquerda imediata ║ -1680 + 1680 = 0 ║ winposstr: s: 0,1, -1680,0,0,1050 ║
Right Direita imediata ║ 1200 + 1680 = 2880 ║ winposstr: s: 0,1,1200,0,2880,1050 ║
Most Mais à direita ║ 1200 + 1680 + 1680 = 4560 ║ winposstr: s: 0,1,2880,0,4560,1050 ║
╚══════════════════╩════════════════════════════╩═ ═══════════════════════════════════╝
Scott Chamberlain
fonte
Uma resposta maravilhosa, eu gostaria que tivesse funcionado. Infelizmente, não importa o que eu tente, ele parece abrir a área de trabalho remota com dimensões de 4096x1080. Eu tentei -3840,0,0,1080, que parecem ser as configurações corretas (meu monitor "composto" grande fica à esquerda da área de trabalho principal). Eu também tentei várias outras configurações (+ -1 para cada número, por exemplo) e parece firmemente definido em 4096 como a largura. Eu vou continuar a brincar com ele ... obrigado novamente ...
user1071914
Gahhh. Isso é bizarro. De repente, começou a funcionar. Parece estar conectado ao parâmetro "screen mode id", bem como ao parâmetro "winposstr". Se a sessão RDP for iniciada como uma JANELA, ela parecerá definir as dimensões corretas. Eu não vou discutir isso - uma vitória é uma vitória no que me diz respeito. Obrigado pela ajuda!
user1071914
Se a janela aberta tem barras de rolagem em seguida, adicione 16 para o segundo último número (janela de preenchimento) e 46 para o último número (janela estofamento + barra de título)
Søren Kruse
-1

Achei essas instruções um pouco confusas, ou talvez eu estivesse com preguiça de ler todas elas. Simplesmente defino o terceiro valor para o valor total "x" que eu queria (no meu caso, queria que o monitor à direita exibisse a conexão e o monitor à esquerda tivesse uma resolução de 1280x800, então coloquei 1280 lá) . Então eu fiz todos os números que se seguiram a zero. Parecia ter funcionado.

winposstr:s:0,1,<your x value>,0,0,0

sarink
fonte