我可以使用批处理文件禁用 Windows 10 动画吗?

Int*_*ked 3 visual-effects windows-10

我想在 Windows 10 中禁用动画,特别是用于最大化/最小化窗口的动画。看起来每个键都有自己的注册表设置,我在这个值列表中没有看到它:https : //technet.microsoft.com/en-us/library/cc957204.aspx

这是可能的,还是我必须手动做的事情?

如果我可以禁用一般动画就好了,但如果我什至可以编写一个仅禁用最大化/最小化动画的脚本,我会很高兴:

在此处输入图片说明

运行此解决方案不起作用:

REG ADD "HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics" /v MinAnimate /t REG_SZ /d 0 /f >nul 2>&1
Run Code Online (Sandbox Code Playgroud)

此选项需要注销/登录或重新启动,这与立即生效(首选)的手动方法不同。

Ben*_*n N 7

您可以使用 PowerShell!我们需要SystemParametersInfo使用适当配置的ANIMATIONINFO结构进行调用,因为该 Windows API 函数发送导致更改立即生效的窗口消息。我写了这个脚本:

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)
Run Code Online (Sandbox Code Playgroud)

C#部分定义了我们需要调用的结构和函数。然后脚本创建动画配置结构,最后调用函数。0x49是告诉SystemParametersInfo设置动画设置的代码,3最后一个参数中的 指定我们希望更新用户配置文件并发送设置更改通知。

要使用该脚本,请将其另存为.ps1文件,例如windowanim.ps1. 按照PowerShell 标记 wiki的启用脚本部分中的说明允许脚本执行,然后您可以从批处理文件运行此命令以禁用窗口动画:

powershell -c .\windowanim.ps1 $false
Run Code Online (Sandbox Code Playgroud)

如果要启用动画,请$true改为提供给脚本。

如果函数调用成功,True无论您启用还是禁用动画,您都会看到打印到控制台。