Alterar a resolução padrão da Remote Desktop Connection (mstsc)
Existe alguma forma de alterar a resolução padrão que a mstsc utiliza?
Não quero que a resolução padrão seja a resolução total da máquina cliente.
Existe alguma forma de alterar a resolução padrão que a mstsc utiliza?
Não quero que a resolução padrão seja a resolução total da máquina cliente.
Claro, basta fazer deslizar a “Configuração do ecrã” para trás até à resolução que desejar. Depois volte para o separador “General” e clique no botão “Save”.
Hey presto, new default :-)
Enquanto estiver a fazer isso, normalmente não faz mal ir ao separador “Local Resources” e desmarcar “Printers” e rever o que mais é partilhado (a sério, quem é que imprime por RDP?).
Eu pessoalmente trabalho num ecrã de um portátil 1440x900 e gosto que as minhas janelas Remote Desktop sejam um pouco mais pequenas do que o ecrã quando maximizadas, por isso corro mstsc.exe switches /v: e /w: para definir a sua altura e largura (ver mstsc.exe /? para uma lista completa). mstsc.exe /h:900 /w:1100 define-o para o meu tamanho preferido, e parece manter esta definição para futuras sessões.
Também pode editar o ficheiro .rdp directamente. Normalmente só o abro no bloco de notas. Pode editar e guardar tal como qualquer ficheiro de texto normal. As propriedades que eu mais costumo editar são desktopwidth
, desktopheight
, e winposstr
. Isto também lhe permite escolher qualquer resolução, não apenas as predefinidas na barra deslizante do GUI. A única parte que é um pouco confusa são os parâmetros para winposstr
; deixe os dois primeiros sozinhos e os quatro últimos são localizações esquerda, superior, direita e inferior da janela, respectivamente. Eu tenho uma configuração de três monitores com resolução 1600 X 1200, e aqui está o que eu uso para mostrar a sessão no meu terceiro monitor sem barras de rolagem.
full address:s:Win7VM
prompt for credentials:i:1
screen mode id:i:1
use multimon:i:0
desktopwidth:i:1590
desktopheight:i:1160
session bpp:i:32
winposstr:s:0,3,3200,0,4790,1160
compression:i:1
keyboardhook:i:2
audiocapturemode:i:0
videoplaybackmode:i:1
connection type:i:7
networkautodetect:i:1
bandwidthautodetect:i:1
displayconnectionbar:i:1
enableworkspacereconnect:i:0
disable wallpaper:i:0
allow font smoothing:i:0
allow desktop composition:i:0
disable full window drag:i:1
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
audiomode:i:0
redirectprinters:i:0
redirectcomports:i:0
redirectsmartcards:i:1
redirectclipboard:i:1
redirectposdevices:i:0
drivestoredirect:s:
autoreconnection enabled:i:1
authentication level:i:2
negotiate security layer:i:1
remoteapplicationmode:i:0
alternate shell:s:
shell working directory:s:
gatewayhostname:s:
gatewayusagemethod:i:4
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
promptcredentialonce:i:0
gatewaybrokeringtype:i:0
use redirection server name:i:0
rdgiskdcproxy:i:0
kdcproxyname:s:
Se você quiser mais detalhes sobre winposstr
, nos bastidores está usando a função API do Windows SetWindowPos
.
Edit:
Esqueci de mencionar isto. Outra coisa fixe sobre a edição como ficheiro de texto é que pode abrir vários documentos em algo como o bloco de notas++ e fazer substituições em massa. Então digamos que eu tenho dez ficheiros .rdp e quero alterar winposstr
para os mesmos valores em todos eles. Posso simplesmente despejá-los todos no bloco de notas++ e fazer um substituto em massa, muito mais fácil do que mexer na GUI e ter de mudar de separador para guardar.
Eu gosto de iniciar o mstsc.exe a partir de um script do PowerShell. Os meus scripts chamam-se, “RDP.PS1” porque o RDP é mais fácil de digitar que o mstsc :)
Há alguns valores que eu quase sempre quero o mesmo: sem impressoras, sem drives e configurações de display BASIC para que a sessão RDP corra mais rápido.
Tenho uma combinação de um “default.rdp” e os switches disponíveis com o mstsc.exe. Fiz isto porque o mstsc.exe não permite uma configuração completa a partir da linha de comando. Ao definir todas as minhas preferências em “default.rdp”, depois incluindo o nome do servidor, /v: e as dimensões do display, /h: e /w:, recebo uma sessão da forma que gosto.
Crie um “default.rdp” e salve-o como esta thread descreveu. Depois combine-o com os switches mstsc.exe:
mstsc.exe MyDefaultPrefs.RDP /v:MyServer /h:815 /w:1300
Usei o PowerShell para adicionar mais alguns switches se me interessar usá-los. Na maior parte dos casos, tudo o que eu digito é:
RDP MyServer
e deixar os valores por defeito serem.
A questão dos computadores portáteis 1440x900 é bastante comum. sim, poderia escolher uma resolução mais pequena, digamos, 1024x768 ou 800x600, e estes produziriam resultados aceitáveis - se o que procura é evitar barras de rolagem com a própria instância do RDP.
Deve ser mais conveniente escolher usar a resolução actual do seu ambiente de trabalho, mas em muitos clientes isto produzirá resultados menos que desejáveis (obtém as barras de deslocamento) a não ser que mude o ecrã inteiro.
Para ter o seu cliente RDP (já que parece que estamos a falar do MSTSC. exe aqui) a sessão ocorre na própria janela, enquanto evita as barras de rolagem (ou as resoluções acima mencionadas que são menos que ideais), os parâmetros /h:900 /w:1100 sugeridos acima são um óptimo ponto de partida, mas com todas as coisas YMMV, por isso brinque com ele até o obter just so ;)
Muitos clientes RDP também lhe permitem definir um res ‘personalizado’ mesmo antes de se ligar, e sim, a maioria dos clientes irá lembrar-se das suas últimas sessões.
Uma coisa importante que deve estar ciente. Para todos nós, UNIX, vamos usar coisas como vcenter, putty, etc., nas nossas sessões de janelas remotas, e o que quer chamar às suas consolas tipo DOS, bem… Eles não seguem o mesmo conjunto de regras que o resto do seu ambiente de trabalho, por isso tome nota disso quando definir as suas resoluções, e defina as suas preferências de acordo com o quão bem o ambiente de trabalho Windows se encaixa no seu espaço de trabalho, porque vai ter de se habituar a mover aquelas janelas DOS-like, pois elas vão ser sempre um pouco desajeitadas.
Também pode definir cores 24bit com um hack, porque está desactivado por defeito, embora não haja realmente necessidade para a maioria das pessoas, e embora algumas pessoas gostem de desactivar a impressão, acho que utilizar aplicações remotas e imprimir localmente via RDP não é apenas um sonho, mas faz parte das minhas tarefas habituais no dia-a-dia.
então lembre-se, se a sua resolução local é 1440x900, ou precisa de correr o seu cliente RDP em modo ecrã inteiro (aparece como se fosse o seu ambiente de trabalho local), ou, para o correr como uma aplicação com janelas óbvias, terá de ajustar a resolução do seu ecrã custom a algo ligeiramente mais pequeno, o que lhe dará uma janela do tamanho de todo o seu ambiente de trabalho, mas sem aparecer como se fosse o seu ambiente de trabalho local - isto é o que muitos preferem, pois de outra forma acham confuso.
Espero que isso ajude :)
Aqui está o que fiz para resolver a questão. Funciona também com aplicações mais antigas que não lidam bem com o alto escalonamento de DPI.
Primeiro é preciso dizer ao Windows para procurar um ficheiro manifesto para uma aplicação por defeito - uma entrada de registo.
HKEY_LOCAL_MACHINE
→SOFTWARE
→Microsoft
→Windows
→CurrentVersion
→SideBySide
NEW
→DWORD (32 bit) Value
PreferExternalManifest
, e depois carregar em Enter. PreferExternalManifest
, e depois clicar em Modify
. Value Data
de 1
e seleccionar Decimal
. O próximo passo é fornecer um ficheiro de manifesto para uma determinada aplicação - o nome do ficheiro executável seguido de .manifest
.
A aplicação RDP é %windir%\System32\mstsc.exe
pelo que o ficheiro de manifesto é mstsc.exe.manifest
.
Não consigo anexar o ficheiro de manifesto pelo que aqui está o conteúdo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0" processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="amd64"
publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
Tenho um portátil que ligo a diferentes monitores externos em locais diferentes, por vezes ligo-me ao meu portátil a partir de uma máquina de secretária e assim obtenho os benefícios de um teclado/mouse/monitor em tamanho real…
Isto causa-me dor porque são todas resoluções diferentes e apesar de seleccionar “Full Screen”, isso não me parece poupar. Se eu trabalhar em casa com uma resolução, depois vou para o escritório e uso um monitor com uma resolução diferente, muitas vezes a minha janela RDP acabaria por ter a resolução “ecrã inteiro” para o último monitor que estava a usar. Isto significa que ou é um pouco grande demais ou um pouco pequeno demais.
Para corrigir isto usei o botão “/f” directamente no link do menu iniciar.
Espero que isto ajude.
Veja este manual sobre as opções disponíveis no ficheiro .rdp. Por exemplo, eu queria uma ligação para abrir em modo ecrã inteiro no monitor que prolonga o ecrã do meu portátil. 2 parâmetros são responsáveis por isso:
screen mode id:i:2 // fullscreen mode
winposstr:s:0,<screen number>,<laptop screen width>,0,<laptop screen width + monitor screen width>,<monitor screen height>
A solução que achei mais útil foi definir as propriedades da barra de tarefas da minha máquina local para “auto-hide” (clique com o botão direito do rato na parte vazia da barra de tarefas, escolha as propriedades, eu desajustei a barra de tarefas lock e verifiquei a propriedade “auto-hide”). A barra de tarefas local continua a aparecer quando desço o rato até à parte inferior do ecrã. Caso contrário, eu vejo e posso usar a barra de tarefas do sistema remoto. Espero que isto seja útil.
Pode também usar o Redimensionamento Inteligente no ficheiro rdp como delineado aqui .
Isto permite-lhe ter um tamanho por defeito personalizado, mas também permite redimensionar a sua janela remota do ambiente de trabalho em tempo real sem introduzir barras de deslocamento indesejadas.
Resumindo:
desktopwidth:i:1280 and desktopheight:i:1024
(substituindo esses números pela resolução desejada) smart sizing:i:1