¡Puedes usar PowerShell! Necesitamos invocar SystemParametersInfo
con una ANIMATIONINFO
estructura configurada adecuadamente , ya que la función API de Windows envía el mensaje de la ventana que hace que el cambio surta efecto de inmediato. Escribí 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)
La parte C # define la estructura y la función que necesitamos llamar. Luego, el script crea la estructura de configuración de animación y finalmente llama a la función. 0x49
es el código que indica SystemParametersInfo
que establezca la configuración de animación y 3
en el último parámetro especifica que queremos que se actualice el perfil de usuario y que se envíe la notificación de cambio de configuración.
Para usar el script, guárdelo como un .ps1
archivo, por ejemplo windowanim.ps1
. Siga las instrucciones en la sección Habilitación de scripts de la wiki de etiquetas de PowerShell para permitir la ejecución de scripts, luego puede ejecutar este comando desde un archivo por lotes para deshabilitar las animaciones de ventana:
powershell -c .\windowanim.ps1 $false
Si desea habilitar las animaciones, proporcione $true
el script en su lugar.
Si la invocación de la función es exitosa, verá True
impreso en la consola, sin importar si habilitó o deshabilitó las animaciones.
UsePreferenceMask
registro y poner el valor en el comando reg add. Para la animación de ventana, el lugar de bit es 1 y el valor 0 lo deshabilita.