我可以使用批次檔停用 Windows 10 動畫嗎?

我可以使用批次檔停用 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

此選項需要登出/登入或重新啟動,與立即生效的手動方法不同(首選)。

答案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程式碼,最後一個參數指定我們希望更新使用者設定檔並發送設定變更通知。SystemParametersInfo3

要使用該腳本,請將其儲存為.ps1文件,例如windowanim.ps1.請按照啟用腳本部分中的說明進行操作PowerShell 標籤維基要允許腳本執行,那麼您可以從批次檔執行此命令來停用視窗動畫:

powershell -c .\windowanim.ps1 $false

如果您想啟用動畫,$true請改為提供給腳本。

如果函數呼叫成功,True無論您啟用或停用動畫,您都會在控制台上看到列印內容。

相關內容