出于某种原因,我正在使用SystemParametersInfo在C#中重新设置壁纸。但是每次我做完这件事,C:\Users\CurrentUser\AppData\Roaming\Microsoft\Windows\Themes中的slideshow.ini也会被重置为空。我需要它是相同的文件,然后我设置新的壁纸到桌面。
是否有任何API或任何方法可以完成这项工作?
是否有任何API可以获得关于用户更改主题的信息->单个壁纸(新主题)?
我试过WM_THEMESCHANGE & WM_PAINT,它们都不能满足我的需要。
只需改变壁纸,但不重置slidershow.ini,它的作用就像“主题”,一段时间后改变照片,并保留slideshow.ini。谢谢你的帮忙!
发布于 2013-06-07 22:21:48
在您的项目中添加一个计时器,并将其集成到默认的墙纸更改代码中,并将其用于常规的墙纸更改。通过将readonly属性设置为ini文件的true,可以保护它不受任何更改的影响。
using System.IO;
string iniPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Microsoft\Windows\Themes\slideshow.ini";
File.SetAttributes(iniPath, File.GetAttributes(iniPath) & FileAttributes.ReadOnly);https://stackoverflow.com/questions/16350603
复制相似问题