using System.Runtime.InteropServices;[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); private void button1_Click(object sender, EventArgs e)
{
int nResult;
if(File.Exists(""))
{
nResult = SystemParametersInfo(20, 1, "", 0x1 | 0x2);
if(nResult==0)
MessageBox.Show("error");
else
MessageBox.Show("ok");
}
}
public static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); private void button1_Click(object sender, EventArgs e)
{
int nResult;
if(File.Exists(""))
{
nResult = SystemParametersInfo(20, 1, "", 0x1 | 0x2);
if(nResult==0)
MessageBox.Show("error");
else
MessageBox.Show("ok");
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using Microsoft.Win32;
using System.IO;namespace RockLib
{
public class Utils
{
/**//// <summary>
/// Change user's desktop wallpaper
/// </summary>
/// <param name="picturePath"></param>
/// <param name="style"></param>
/// <returns></returns>
public static bool ChangeWallPaper(string picturePath, WallPaperStyle style)
{
RegistryKey myRegKey = Registry.CurrentUser.OpenSubKey("Control Panel\\desktop", true);
switch (style)
{
case WallPaperStyle.Center:
myRegKey.SetValue("TileWallpaper", "0");
myRegKey.SetValue("WallpaperStyle", "0");
break;
case WallPaperStyle.Tile:
myRegKey.SetValue("TileWallpaper", "1");
myRegKey.SetValue("WallpaperStyle", "0");
break;
case WallPaperStyle.Stretch:
myRegKey.SetValue("TileWallpaper", "0");
myRegKey.SetValue("WallpaperStyle", "2");
break;
default:
throw new NotSupportedException("style");
}
myRegKey.Close(); int intResult;
if (!File.Exists(picturePath))
{
throw new ArgumentException(string.Format("Picture {0} cannot be found.", picturePath));
} intResult = SystemParametersInfo(20, 3, picturePath, 0x1 | 0x2); return intResult > 0; } [DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SystemParametersInfo
(int uAction, int uParam, string lpvParam, int fuWinIni);
} public enum WallPaperStyle
{
Center,
Tile,
Stretch
}
}
using System.Runtime.InteropServices; [DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); private void button1_Click(object sender, EventArgs e)
{
int nResult;
if(File.Exists(""))
{
nResult = SystemParametersInfo(20, 1, "", 0x1 | 0x2);
if(nResult==0)
MessageBox.Show("error");
else
MessageBox.Show("ok");
}
}
这个简洁些!把提示修改一下就可以用了。
SystemParametersInfo(20, 1, @"..\\image\2.jpg", 0x1 | 0x2);不对
SystemParametersInfo(20, 1, @"C:\\Documents and Settings\Administrator\桌面\burst\burst\image\2.jpg", 0x1 | 0x2);也不对,
路径出问题了?