3

我错过了使用 IActiveDesktop 的东西吗?

故障现象: 系统(Win7/Win8)重启后换壁纸时的淡入淡出效果消失。

要恢复它,我必须手动转到“个性化 - >桌面背景”并将“图片位置”从“我的图片”(?)设置回“Windows桌面背景”,然后返回(!)。在此操作之后,淡入淡出效果再次正常工作,直到下一次系统重新启动。

我不明白是什么恢复了它以及如何阻止它。如何以编程方式设置“Windows 桌面背景”选项?什么系统在后台?

代码本身非常标准,取自 MSDN/CodeProject。

4

1 回答 1

1

您必须告诉 Windows 您要启用 ActiveDesktop。我每次都在通过 ActiveDesktop 设置壁纸之前告诉它。

public static void EnableActiveDesktop()
{
    IntPtr result = IntPtr.Zero;
    WinAPI.SendMessageTimeout(WinAPI.FindWindow("Progman", null), 0x52c, IntPtr.Zero, IntPtr.Zero, 0, 500, out result);
}

您可以在此处的上下文中看到这一点:https ://pulse.codeplex.com/SourceControl/changeset/view/72677#1589017

于 2013-05-03T03:35:54.760 回答