c#:关于主题&壁纸在窗口,如何保持slideshow.ini不要改变

本文关键字:slideshow 何保持 ini 改变 窗口 于主题 | 更新日期: 2023-09-27 18:12:00

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

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

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

我试过了。WM_PAINT,它们都不能满足我的需求。

只更改墙纸,不重置slidershow.ini,它的作用就像"主题",一段时间后更换照片,保留slidershow.ini。谢谢你的帮助!

c#:关于主题&壁纸在窗口,如何保持slideshow.ini不要改变

将计时器添加到项目中,并将其集成到默认的墙纸更改代码中,并将其用于常规墙纸更改。通过将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);