求用C#修改XP壁纸方法
我曾试过用代码修改注册表以试图修改壁纸。想不到注册表参数修改成功,注销了后却发现壁纸变成了默认的(什么都没有)。有什么方法改壁纸吗?能不注销就更好了
我曾试过用代码修改注册表以试图修改壁纸。想不到注册表参数修改成功,注销了后却发现壁纸变成了默认的(什么都没有)。有什么方法改壁纸吗?能不注销就更好了
答案:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
using System.Drawing.Imaging;
namespace APIdesktop
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}#region 调用API
[DllImport("user32.dll", EntryPoint = "SystemParametersInfoA")]
static extern Int32 SystemParametersInfo(Int32 uAction, Int32 uParam, string lpvparam, Int32 fuwinIni);
private const int SPI_SETDESKWALLPAPER = 20;
#endregion
Form2 ;
private void toolStripButton2_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
listView1.Items.Clear();
string[] files = openFileDialog1.FileNames;
string[] fileinfo = new string[3];
for (int i = 0; i < files.Length; i++)
{
string path = files[i].ToString();
string fileName = path.Substring(path.LastIndexOf("\\") + 1, path.Length - 1 - path.LastIndexOf("\\"));
string filetype = fileName.Substring(fileName.LastIndexOf(".") + 1, fileName.Length - 1 - fileName.LastIndexOf("."));
fileinfo[0] = fileName;
fileinfo[1] = path;
fileinfo[2] = filetype;
ListViewItem lvi = new ListViewItem(fileinfo);
listView1.Items.Add(lvi);
}
}
}private void Form1_Load(object sender, EventArgs e)
{
int x = this.Location.X;
int y = this.Location.Y;
= new Form2();
.x = x + this.Width;
.y = y;
.Hide();
openFileDialog1.Filter = "支持的图片格式|*.jpeg;*.png;*.bmp;*.jpg";
}private void toolStripButton1_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
listView1.Items.RemoveAt(listView1.SelectedItems[0].Index);
}
}private void 添加ToolStripMenuItem_Click(object sender, EventArgs e)
{
toolStripButton2_Click(sender, e);
}private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
toolStripButton1_Click(sender, e);
}private void 清空ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
}private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}private void 设为桌面背景ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
string FPath = listView1.SelectedItems[0].SubItems[1].Text;
//获取指定图片的扩展名
string SFileType = FPath.Substring(FPath.LastIndexOf(".") + 1, (FPath.Length - FPath.LastIndexOf(".") - 1));
//将扩展名转换成小写
SFileType = SFileType.ToLower();
//获取文件名
string SFileName = FPath.Substring(FPath.LastIndexOf("\\") + 1, (FPath.LastIndexOf(".") - FPath.LastIndexOf("\\") - 1));
//如果图片的类型是bmp则调用API中