Como desativar o recurso do Windows 7 que maximiza uma janela para tela cheia quando movida para a borda da tela (mas mantém os atalhos do teclado funcionando)?


10

Segui este conselho: Como desativar a janela de maximização / redimensionamento automático (snap aero) quando próxima à borda da tela?

Mas também desativa o recurso em que pressionar WinKey+ Left/Right Arrow, encaixa as janelas na metade da tela na direção da tecla de seta.

Existe uma maneira de controlá-los independentemente?


Estive procurando a mesma solução e acredito que não pode ser feita de forma nativa. Quão difícil é para a Microsoft permitir que os usuários personalizem essas configurações facilmente?
usuário

1
Exatamente muitas coisas triviais não são possíveis. Por quê? Porque a MS não tem idéia sobre usabilidade. O último xbox deles mostra o melhor. E eles esperam que as pessoas paguem quantias absurdas por seus softwares.
Joan Venge

Respostas:


3

Embora possa não haver uma maneira de fazer isso por meio de uma GUI, há uma maneira de fazer isso programaticamente.

A função que você deseja é SystemParametersInfo . Você pode ler sobre isso no MSDN, se quiser ter capacidade total (pode acessar um número absurdo de configurações), mas estará interessado em SPI_SETDOCKMOVINGe SPI_SETSNAPSIZING.

SPI_SETDOCKMOVINGalterna a capacidade de encaixar janelas arrastando-as pelas barras de título. Você pode desativá-lo assim:

SystemParametersInfo(SPI_SETDOCKMOVING, 0, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE)

SPI_SETSNAPSIZINGalterna a capacidade de encaixar janelas dimensionando-as usando as bordas superior e inferior. Você pode desativá-lo assim:

SystemParametersInfo(SPI_SETSNAPSIZING, 0, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE)

Para ativar novamente, basta fazer a mesma chamada com um número diferente de zero para o segundo argumento. Para que as alterações não persistam após uma reinicialização, remova o sinalizador SPIF_UPDATEINIFILE do último argumento.

Para garantir que você mantenha os atalhos do teclado, não desative o AeroSnap no Painel de controle ou no Registro .

O diligente pode perceber que os argumentos fornecidos aqui não são o que você espera que sejam da documentação. Especificamente, o pvParam e o uiParams são alternados. Esta é a única maneira que encontrei para fazer essa função funcionar na minha máquina (executando o Windows 8.1), por isso suspeito de um erro nos documentos.


O resultado da execução desse código com o conjunto SPIF_UPDATEINIFILE: superuser.com/a/1464761/128356 (torna possível aplicar apenas essas edições no registro).
Duke Nukem

2

Eu procurei isso no passado e não acredito que exista uma maneira de fazer isso no próprio Windows. No entanto, existe uma alternativa de terceiros. Primeiro, desative o snap aero conforme o link na sua pergunta. Em seguida, usando o WindowsPad (uma configuração especial de script do AutoHotkey ), você pode restaurar a movimentação de janelas entre telas em uma configuração de vários monitores, usar o encaixe esquerdo / direito e muito mais (encaixe superior, inferior, médio e canto). Por padrão, o WindowsPad usa as teclas Win+ NumPad(devido à funcionalidade adicionada), mas você pode adicionar a funcionalidade de tecla de seta do tipo aero-snap-like adicionando o seguinte à [Hotkeys]seção do arquivo WindowsPad.ini:

# + Esquerda = WindowScreenMove, Avançar
# + Direita = WindowScreenMove, Anterior
#Left = WPM, -1, 0, 0,5, 1,0
#Right = WPM, +1, 0, 0,5, 1,0
#Up = MaximizeToggle
#Down = Restaurar

Infelizmente, você perde a capacidade de ajustar para 50% da tela e, em seguida, restaura a posição original (já que na verdade está redimensionando a janela, sem usar o snap aero). Mas até agora, essa é a única desvantagem que encontrei.


Demonstração dos recursos de encaixe no canto e no fundo do WindowsPad:

Demonstração do WindowsPad


2

Você pode tentar minha coleção de ferramentas do Windows . A seguir estão as teclas de atalho para mover as janelas:

Win+Array: Move the active window based on other visible windows. This allows for fast window alignment.
Shift+Win+Array: Move the left-up corner of the active window.
Alt+Win+Array: Move the right-bottom corner of the active window.
Ctrl+Win+Array: Dock the active window
Alt+F9: Minimize the active window
Alt+F10: Toggle maximize the active window

Jun 2015

Como o código do Google está sendo descomissionado, mudei o código para o github . A página wiki tem algumas informações de ajuda: rwin wiki


2

A seguinte edição do registro atinge exatamente o que foi solicitado :

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"DockMoving"="0"
"SnapSizing"="0"

(Você pode salvar isso como um arquivo .reg e executá-lo. É necessário reiniciar ou reiniciar.)

Efetivamente, essas são as duas configurações que seriam definidas, executando o código na resposta do @ gitbox.

Funciona no Windows 7 - 10.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.