![我可以使用批处理文件禁用 Windows 10 动画吗?](https://linux22.com/image/1540121/%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E7%A6%81%E7%94%A8%20Windows%2010%20%E5%8A%A8%E7%94%BB%E5%90%97%EF%BC%9F.png)
我想禁用 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
此选项需要注销/登录或重新启动,不像手动方法那样立即生效(首选)。
答案1
你可以使用 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)
C# 部分定义了我们需要调用的结构和函数。然后脚本创建动画配置结构,最后调用该函数。是指示设置动画设置的0x49
代码,最后一个参数指定我们希望更新用户配置文件并发送设置更改通知。SystemParametersInfo
3
要使用脚本,请将其保存为.ps1
文件,例如windowanim.ps1
。按照启用脚本部分中的说明进行操作PowerShell 标签 wiki允许脚本执行,然后您可以从批处理文件运行此命令来禁用窗口动画:
powershell -c .\windowanim.ps1 $false
如果您想启用动画,请提供$true
给脚本。
如果函数调用成功,True
无论您启用还是禁用动画,您都会看到打印到控制台的内容。