使用.NET 4.0更改Windows Wallpaper?

Bru*_*oLM 5 c# .net-4.0

有没有办法使用.NET 4中的一些新功能来更改Windows壁纸?

Chr*_*lor 8

您可以使用SystemParametersInfo设置桌面墙纸.这应该在您的应用程序可以运行的所有Windows版本上一致地工作,但是需要一些互操作.

您需要以下互操作声明

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);
Run Code Online (Sandbox Code Playgroud)

这可以用来改变桌面壁纸

SystemParametersInfo(
  SPI_SETDESKWALLPAPER, 0, "filename.bmp", 
  SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
Run Code Online (Sandbox Code Playgroud)