VB调用API来更换桌面的程序我想既然VB可以C#也一定能行所以就
试着做了一下好吧来看看我的代码吧一步一步来你也能行
那还是先让我们来了解一个API吧SystemParametersInfo这个API的功能
很简单就是通过一些参数的设置来完成对系统的一些外观设置
函数原型如下:
BOOL SystemParametersInfo(
UINT uiAction
UINT uiParam
PVOID pvParam
UINT fWinIni
);
该函数返回一个Bool值非成功否则当然是失败了那样的话根据MSDN的说法
还将会设置GetLastError(关于这一点可以参考MSDN)
这里还必须提到的一点是关于uAction常数表这张表里面包括了很多关于这些参数
的设置工作因为它将影响到前面两个参数第三个参数在我们这里的用法是得到
图片的路径第四个参数看名字也猜的到随同这个函数设置的用户配置参数保存在winini
或注册表里或同时保存在这两个地方一般是X或者X就可以了
下面我在给出有关该API变成C#的代码如下:
[DllImport(userdll CharSet=CharSetAuto)]
public static extern int SystemParametersInfo (int uAction int uParam string lpvParam int fuWinIni) ;
//图片
看见上面的图了吗?我来主要说说那个两个button
首先叫到的是选择按钮代码如下:
private void button_Click(object sender SystemEventArgs e)
{
openFileDialogInitialDirectory = @C:\\;
if (openFileDialogShowDialog() == DialogResultOK)
{
textBoxText = openFileDialogFileName;
string[] strA=textBoxTextSplit();
Bitmap bm=new Bitmap(textBoxText);
if(strA[]!=bmp)
{
filepath=strA[]+bmp;
bmSave(filepath);
}
else
filepath=textBoxText;
thispictureBoxImage=bm;
}
正如你看到的那样由于只能将BMP图象设置成桌面所以必须要转化一下上面是我的方法
也许你还有更好的那就说说吧
然后是更换按钮代码如下:
private void button_Click(object sender SystemEventArgs e)
{
int nResult ;
if (FileExists(filepath))
{
nResult = SystemParametersInfo( filepath x | x );
if(nResult==)
MessageBoxShow(没有更新成功!);
else
MessageBoxShow(正在更换背景图片);
}
else
MessageBoxShow(文件不存在!);
}
这个实现起来在简单不过了仅仅是调用刚才上面讲到的API就可以了
好了我把全部代码都给你很简单如下:
using System;
using SystemDrawing;
using SystemCollections;
using SystemComponentModel;
using SystemWindowsForms;
using SystemData;
using SystemRuntimeInteropServices;
using SystemIO;
namespace desktopWalk
{
/// <summary>
/// Form 的摘要说明
/// </summary>
public class Form : SystemWindowsFormsForm
{
private SystemWindowsFormsButton button;
private SystemWindowsFormsButton button;
private SystemWindowsFormsTextBox textBox;
private SystemWindowsFormsGroupBox groupBox;
private SystemWindowsFormsGroupBox groupBox;
private SystemWindowsFormsLabel label;
private SystemWindowsFormsPictureBox pictureBox;
private SystemWindowsFormsLabel label;
private SystemWindowsFormsOpenFileDialog openFileDialog;
private string filepath;
/// <summary>
/// 必需的设计器变量
/// </summary>
private SystemComponentModelContainer components = null;
[DllImport(userdll CharSet=CharSetAuto)]
public static extern int SystemParametersInfo (int uAction int uParam string lpvParam int fuWinIni) ;
public Form()
{
//
// Windows 窗体设计器支持所必需的