Можно ли отключить анимацию 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— это код, который сообщает SystemParametersInfoо необходимости установки настройки анимации, а 3в последнем параметре указывается, что мы хотим обновить как профиль пользователя, так и отправить уведомление об изменении настройки.

Чтобы использовать скрипт, сохраните его как .ps1файл, например windowanim.ps1. Следуйте инструкциям в разделе Включение скриптовтег PowerShell wikiЧтобы разрешить выполнение скрипта, вы можете запустить эту команду из пакетного файла, чтобы отключить анимацию окон:

powershell -c .\windowanim.ps1 $false

Если вы хотите включить анимацию, укажите ее $trueв скрипте.

Если вызов функции прошел успешно, вы увидите Trueсообщение на консоли, независимо от того, включили ли вы анимацию или нет.

Связанный контент