Use QRes e diga
QRes.exe /x:800 /y:600
Estou usando o programa Live Mesh da Microsoft para acessar remotamente um PC com Windows 7, rodando em duas telas: uma com 1920x1080 e outra com resolução de 1920x1200.
Estou acessando-os por meio de um laptop antigo com resolução de 1024x1078. O resultado são ícones / comandos tão pequenos que é difícil tentar alterar a resolução da tela de 2 monitores de alta resolução para o monitor de baixa resolução.
Seria ótimo se houvesse uma maneira de fazer isso na linha de comando. Ou talvez haja um caminho através da malha viva para fazê-lo. Alguma idéia?
Use QRes e diga
QRes.exe /x:800 /y:600
A ferramenta freeware nircmd pode fazer isso.
Para alterar a exibição para 1024 x 768 com uma profundidade de cor de 24 bits:
nircmd.exe setdisplay 1024 768 24
O nircmd também possui outras funções muito numerosas.
Teste o Modificador de exibição 2 , que pode fazer isso, além de iniciar um programa e alterar a resolução quando parar executando (o que você pode ser capaz de trabalhar com malha, mas YMMV)
Eu usei uma combinação de Qres.exe e Sleep.exe (coloque-os na pasta do Windows) em arquivos de lote de inicialização para alterar a resolução entre dois usuários. O script atual é o seguinte:
@echo off
sleep 2
QRes.exe /x:1280 /y:960
(Considerando que a cópia de baixa resolução é Qres.exe /x:800 /y:600
)
----------------------------- -------------------------------------------------- ------------------------------------------------
------------------------------------------------- -------------------------------------------------- ----------------------------
Se você quiser que seus ícones fiquem onde você os deseja ... continue lendo.
Você precisará de mais dois downloads:
- > Startup Delayer:
link
- > DesktopOK
link
Instale o Delayer de Inicialização e coloque o DesktopOK onde quiser, usei minha pasta 'usuário'.
Organize sua área de trabalho, como você deseja que ela esteja em todas as reinicializações.
No DesktopOK, acesse Opções e marque "Restaurar pelo Windows Startup", clique com o botão direito no novo "Icon Layout" e clique em "Usar isto para : Restaurar no Windows Startup ".
Neste ponto, você também precisará verificar" Iniciar o DesktopOK com o Windows ". As duas opções posteriores serão desmarcadas automaticamente pelo Delayer de Inicialização mais tarde.
Agora localize DesktopOK no Startup Delayer e clique com o botão direito do mouse em "Delay".
Agora há apenas uma coisa a fazer, criar seu arquivo de lote de inicialização.
@echo off
sleep 2
QRes.exe /x:1280 /y:960
sleep 1
"C:\Program Files\r2 Studios\Startup Delayer\Startup Launcher.exe" /LaunchApps=Common
É claro que você precisará colocá-lo na sua pasta de inicialização, a razão pela qual o processo é tão extenso com os ícones é porque o DesktopOK não pode lidar com a opção de resolução, e quer mover ícones enquanto a resolução está sendo alterada, então precisávamos para atrasar a inicialização do registro, e esta é a única maneira que encontrei. Não me atrevo a afirmar que esta é a melhor maneira, mas afirmo que funciona, não encontrei outra maneira, e cheguei ao processo sozinho. Ele contorna todos os aspectos da situação, substituindo os ícones pelos quais eles pertencem por usuário.
Obrigado por ser tão flexível Microsoft!
Eu encontrei um exemplo de script do Windows Powershell , fornecido pela Microsoft Technet, que é capaz de alterar a resolução da tela.
A melhor maneira de invocá-lo, descobri, era de um script separado do Powershell, que se parece com isso:
## This loads the function (defined in another script)
. C:\[YOUR-PATH]\Set-ScreenResolution
## invoke with width and height
Set-ScreenResolution -Width 1680 -Height 1050
(Observe que eu salvei o script da Microsoft como Set-ScreenResolution.ps1
)
Então, a partir da linha de comando ou Start- > Run, você pode invocar o segundo script Powershell, que eu chamei Invoke-Set-ScreenResolution.ps1
assim (o -noexit
param é bom no começo para depurar, mas você pode querer removê-lo mais tarde, dependendo se você deseja fechar a janela de comando):
powershell -noexit -ExecutionPolicy Bypass & C:\[your-path]\Invoke-Set-ScreenResolution.ps1
Nenhuma das ferramentas já mencionadas tinha tudo o que eu precisava, então eu criei a minha própria solução: ChangeScreenResolution.exe
Exemplos:
Altere a resolução da tela de todos os monitores para 800x600px
ChangeScreenResolution.exe /w=800 /h=600
Altere a resolução da tela de todos os monitores para 800x600px com taxa de atualização de 60Hz e profundidade de cor de 32 bits
ChangeScreenResolution.exe /w=800 /h=600 /f=60 /b=32
Defina a profundidade de cores da exibição com o índice de 1 a 16 bits
ChangeScreenResolution.exe /b=16 /d=1
Visão geral rápida das opções:
Possible options (you can set OR query)
Setting options
/w=<width> Width in pixel eg 800
/h=<height> Height in pixel eg 600
/f=<frequency> display refresh rate eg 60
/b=<bpp> bits per pixel eg 32
Querying options
/l list all connected display devices
/m list all available mode settings
Filtering options
/d=<device> devices to modify/query, separated by comma, eg:
all (default)
0 (monitor with index 0, see option /l)
0,2 (monitors with index 0 and 2)
\.\DISPLAY1 (name of display, see option /l)
Embora alguém já tenha mencionado o nircmd da Nirsoft, a melhor ferramenta da Nirsoft para essa finalidade é MultiMonitorTool .
Suporta multi-monitor, configurações salvas, 32 e 64 bits, mudanças na resolução, ativação e orientação, etc.
Digno de notar a solução através do comando wmic
embutido de W indica M anagement I nstrumentation
wmic desktopmonitor create screenheight=1024, screenwidth=768
Embora possa resultar em:
ERROR:
Description = Provider is not capable of the attempted operation
em alguns "provedores"