如何检查用户是否想要动画(通过系统设置)?

时间:2014-07-29 19:32:56

标签: c# .net wpf windows winapi

我希望在我的程序中有动画,但在我将它们强加给所有人(尤其是硬件较差的人)之前,我还想检查它们是否是您想要的。

具体来说,我想从Performance Option窗口检查设置(下面的截图)。

Animate controls and elements inside windows setting

我注意到一些程序正在使用它(这就是我甚至知道它存在的方式)所以我认为必须有一个可以使用的API。

所以我的问题是如何检查该设置是打开还是关闭? 最终这是在C#WPF应用程序中。

1 个答案:

答案 0 :(得分:4)

这应该是你正在寻找的技巧

[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SystemParametersInfo(uint uiAction, uint uiParam, out bool pvParam, uint fWinIni);

private static uint SPI_GETCLIENTAREAANIMATION = 0x1042;

static void Main(string[] args)
{
    try
    {
        bool animationsEnabled;
        SystemParametersInfo(SPI_GETCLIENTAREAANIMATION, 0x00, out animationsEnabled, 0x00);

        if (animationsEnabled)
        {
            //Animate controls and elements inside windows is checked
        }
        else
        {
            //Animate controls and elements inside windows is not checked
        }
    }
    catch (Win32Exception ex)
    {
        //error
    }
}