C# 是否使用.NET 4.0更改Windows墙纸?
是否有办法使用.NET 4中的某些新功能更改Windows墙纸?您可以通过更新注册表来设置墙纸。这里有一篇2006年的文章解释了如何做到这一点。更新版本的Windows可能会改变细节,但概念应该是相同的。框架版本应该是无关的 您可以使用设置桌面墙纸。这应该能在应用程序可以运行的所有windows版本上保持一致,但是需要一些互操作 以下互操作声明是您所需要的C# 是否使用.NET 4.0更改Windows墙纸?,c#,.net-4.0,C#,.net 4.0,是否有办法使用.NET 4中的某些新功能更改Windows墙纸?您可以通过更新注册表来设置墙纸。这里有一篇2006年的文章解释了如何做到这一点。更新版本的Windows可能会改变细节,但概念应该是相同的。框架版本应该是无关的 您可以使用设置桌面墙纸。这应该能在应用程序可以运行的所有windows版本上保持一致,但是需要一些互操作 以下互操作声明是您所需要的 public const int SPI_SETDESKWALLPAPER = 20; public const int SPIF_UPDA
public const int SPI_SETDESKWALLPAPER = 20;
public const int SPIF_UPDATEINIFILE = 1;
public const int SPIF_SENDCHANGE = 2;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern int SystemParametersInfo(
int uAction, int uParam, string lpvParam, int fuWinIni);
它可以像这样用来改变桌面壁纸
SystemParametersInfo(
SPI_SETDESKWALLPAPER, 0, "filename.bmp",
SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
请注意,如果指定的文件不存在,SystemParametersInfo甚至会返回true!(至少在Windows 8上) 另外,您必须提供文件的完整路径,而不仅仅是相对路径 同样在Windows7和更高版本上,这将创建一个新的主题,当然也将关闭图片洗牌