Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#:关于主题和;windows中的壁纸,如何保持slideshow.ini不';你不会变吗?_C#_Windows_Themes_Wallpaper - Fatal编程技术网

C#:关于主题和;windows中的壁纸,如何保持slideshow.ini不';你不会变吗?

C#:关于主题和;windows中的壁纸,如何保持slideshow.ini不';你不会变吗?,c#,windows,themes,wallpaper,C#,Windows,Themes,Wallpaper,出于某种原因,我正在使用C#中的系统参数sinfo重置墙纸。 但每次我完成这项工作时,C:\Users\CurrentUser\AppData\Roaming\Microsoft\Windows\Themes中的slideshow.ini将重置为EmptyTo。 我需要它是相同的文件之前,我设置新的壁纸桌面 是否有任何API或任何方法可以完成这项工作 是否有任何API可以获取有关用户更改主题->单一墙纸(新主题)的消息 我试过WM_THEMESCHANGE&WM_PAINT,没有一款能满足我的需

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

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

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

我试过WM_THEMESCHANGE&WM_PAINT,没有一款能满足我的需求

只需更改墙纸,但不要重置slideshow.ini,它的行为就像“主题”,在一段时间后更改照片并保留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);