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.