バッチファイルを使用して Windows 10 アニメーションを無効にすることはできますか?

バッチファイルを使用して Windows 10 アニメーションを無効にすることはできますか?

Windows 10 のアニメーション、特にウィンドウを最大化/最小化するアニメーションを無効にしたいのですが、各キーに独自のレジストリ設定があるようには見えず、次の値のリストにも表示されません。https://technet.microsoft.com/ja-jp/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アニメーションを有効にしたか無効にしたかに関係なく、コンソールに出力されます。

関連情報