1

出于某种原因,我正在使用C# 中的SystemParametersInfo重置壁纸。但是每次我完成这项工作时,C:\Users\CurrentUser\AppData\Roaming\Microsoft\Windows\Themes 中的 slideshow.ini 也会被重置为空。在将新壁纸设置为桌面之前,我需要它是同一个文件。

是否有任何 API 或任何方式可以完成这项工作?

是否有任何 API 可以获取有关用户更改主题->单个壁纸(新主题)的消息?

我已经尝试过 WM_THEMESCHANGE 和 WM_PAINT,它们都不能满足我的需求。

只需更换壁纸但不重置slidershow.ini,它就像“主题”一样,一段时间后更换照片并保留slideshow.ini。谢谢你的帮助!

4

1 回答 1

0

在您的项目中添加一个计时器并将其集成到您的默认壁纸更改代码中,并将其用于常规壁纸更改。通过将 ini 文件的 readonly 属性设置为 true,您可以保护它免受任何更改。

        using System.IO;

        string iniPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Microsoft\Windows\Themes\slideshow.ini";
        File.SetAttributes(iniPath, File.GetAttributes(iniPath) & FileAttributes.ReadOnly);
于 2013-06-07T22:21:48.257 回答