Posso desativar animações do Windows 10 com um arquivo em lotes?

2

Gostaria de desativar animações no Windows 10, especificamente animações para maximizar / minimizar janelas. Não parece que cada chave tenha sua própria configuração de registro, e eu não a vejo nesta lista de valores: link

Isso é possível ou isso é algo que eu teria que fazer manualmente?

Seria bom se eu pudesse desabilitar as animações em geral, mas ficaria feliz se pudesse apenas escrever um script que desabilitaria apenas as animações de maximizar / minimizar:

Emexecução esta solução não funciona:

REG ADD "HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics" /v MinAnimate /t REG_SZ /d 0 /f >nul 2>&1

Esta opção requer um logout / login ou reiniciar , diferentemente de o método manual que entra em vigor imediatamente (de preferência).

    
por InterLinked 02.09.2017 / 18:18

1 resposta

5

Você pode usar o PowerShell! Precisamos invocar SystemParametersInfo com um configurado apropriadamente ANIMATIONINFO estrutura, desde que A função da API do Windows envia a mensagem da janela que faz com que a alteração entre em vigor imediatamente. Eu escrevi este script:

Add-Type -TypeDefinition @"
    using System;
    using System.Runtime.InteropServices;
    [StructLayout(LayoutKind.Sequential)] public struct ANIMATIONINFO {
        public uint cbSize;
        public bool iMinAnimate;
    }
    public class PInvoke { 
        [DllImport("user32.dll")] public static extern bool SystemParametersInfoW(uint uiAction, uint uiParam, ref ANIMATIONINFO pvParam, uint fWinIni);
    }
"@
$animInfo = New-Object ANIMATIONINFO
$animInfo.cbSize = 8
$animInfo.iMinAnimate = $args[0]
[PInvoke]::SystemParametersInfoW(0x49, 0, [ref]$animInfo, 3)

A parte C # define a estrutura e a função que precisamos chamar. Em seguida, o script cria a estrutura de configuração de animação e, finalmente, chama a função. 0x49 é o código que informa SystemParametersInfo para definir a configuração de animação e o 3 no último parâmetro especifica que queremos que o perfil de usuário seja atualizado e a notificação de alteração de configuração seja enviada.

Para usar o script, salve-o como um arquivo .ps1 , por exemplo %código%. Siga as instruções na seção Habilitando Scripts do wiki de tags do PowerShell para permitir a execução de scripts, então você pode executar esse comando a partir de um arquivo em lote para desativar as animações das janelas:

powershell -c .\windowanim.ps1 $false

Se você deseja ativar as animações, forneça windowanim.ps1 ao script.

Se a invocação da função for bem-sucedida, você verá $true impresso no console, independentemente de ter ativado ou desativado as animações.

    
por 02.09.2017 / 19:23