注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Dotnet >> C# >> Dotnet正文

C#制作的更换壁纸程序

文章来源:中国IT实验室收集整理 作者:佚名 更新时间:2008-6-28 20:38:52 【 】 【加入收藏

    VB调用API来更换桌面的程序,我想既然VB可以C#也一定能行,所以就
    试着做了一下,好吧,来看看我的代码吧.一步一步来,你也能行.
    那还是先让我们来了解一个API吧,SystemParametersInfo,这个API的功能
    很简单就是通过一些参数的设置来完成对系统的一些外观设置.
    函数原型如下:
    BOOL SystemParametersInfo(
      UINT uiAction,
      UINT uiParam,
      PVOID pvParam,
      UINT fWinIni
    );
    该函数返回一个Bool值.非0成功,否则当然是失败了,那样的话根据MSDN的说法
    还将会设置GetLastError(关于这一点可以参考MSDN)
    这里还必须提到的一点是,关于uAction常数表,这张表里面包括了很多关于这些参数
    的设置工作.因为它将影响到.前面两个参数.第三个参数在我们这里的用法是得到
    图片的路径.第四个参数看名字也猜的到.随同这个函数设置的用户配置参数保存在win.ini
    或注册表里,或同时保存在这两个地方.一般是0X1或者0X2就可以了.
    下面我在给出有关该API变成C#的代码如下:
    [DllImport("user32.dll", CharSet=CharSet.Auto)]
    public static  extern int SystemParametersInfo (int uAction , int uParam , string lpvParam , int fuWinIni) ;

    //图片


    看见上面的图了吗?我来主要说说那个两个button,
    首先叫到的是选择按钮代码如下:
    private void button1_Click(object sender, System.EventArgs e)
      {
       openFileDialog1.InitialDirectory = @"C:\\";
       if (openFileDialog1.ShowDialog() == DialogResult.OK)
       {
        textBox1.Text = openFileDialog1.FileName;
        string[] strA=textBox1.Text.Split(’.’);
        Bitmap bm=new Bitmap(textBox1.Text);
        if(strA[1]!="bmp")
        {
         filepath=strA[0]+".bmp";
         bm.Save(filepath);
        }
        else
         filepath=textBox1.Text;
        this.pictureBox1.Image=bm;
       }
    正如你看到的,那样,由于只能将BMP图象设置成桌面所以必须要转化一下,上面是我的方法
    也许你还有更好的,那就说说吧.
    然后是更换按钮,代码如下:
    private void button2_Click(object sender, System.EventArgs e)
      {
       int nResult ;
       if (File.Exists(filepath))
       {
        nResult = SystemParametersInfo(20, 1, filepath,  0x1 | 0x2 );
        if(nResult==0)
         MessageBox.Show("没有更新成功!");
        else
        MessageBox.Show("正在更换背景图片...");
       }
       else
        MessageBox.Show("文件不存在!");
      }
    这个实现起来在简单不过了,仅仅是调用刚才上面讲到的API就可以了.
    好了,我把全部代码都给你,很简单,如下:


     using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Runtime.InteropServices;
    using System.IO;
    namespace desktopWalk
    {
     /// <summary>
     /// Form1 的摘要说明。
     /// </summary>
     public class Form1 : System.Windows.Forms.Form
     {
      private System.Windows.Forms.Button button1;
      private System.Windows.Forms.Button button2;
      private System.Windows.Forms.TextBox textBox1;
      private System.Windows.Forms.GroupBox groupBox1;
      private System.Windows.Forms.GroupBox groupBox2;
      private System.Windows.Forms.Label label1;
      private System.Windows.Forms.PictureBox pictureBox1;
      private System.Windows.Forms.Label label2;
      private System.Windows.Forms.OpenFileDialog openFileDialog1;
      private string filepath;
      /// <summary>
      /// 必需的设计器变量。
      /// </summary>
      private System.ComponentModel.Container components = null;
      [DllImport("user32.dll", CharSet=CharSet.Auto)]
      public static  extern int SystemParametersInfo (int uAction , int uParam , string lpvParam , int fuWinIni) ;
      public Form1()
      {
       //
       // Windows 窗体设计器支持所必需的

  • 上一篇Dotnet:

  • 下一篇Dotnet:
  • 最 新 热 门
     web.config配置文件中的 元素
     为网站添加业务层
     用SqlDataSource实现DataList嵌套DataList
     Visual Studio 2003插件的编写
     千条DOS命令收藏
     IIS 常见问题
     IIS需要的最小NTFS权限
     优化 .NET的性能
     设计模式与VB .net代码 外观模式,合成模式
     VB.net中介者模式
    最 新 推 荐
     Windows via C/C++ —进程(一)
     C#邮件发送程序
     扩展 ASP.NET 的客户端验证
     实现DataGridView中行的上下移动
     C#中的委托和事件
     与IDE相关的Attribute属性
     C#中using关键字的使用介绍
     C#FileStream复制大文件
     C#实用技巧:轻松实现对文件的操作
     C#实现所有经典排序算法
    相 关 文 章

    C#通过ADO.NET建表点实现方法
    asp.net+C#实现文件上传实现代码
    C#邮件发送程序
    C#中的委托和事件
    C#中using关键字的使用介绍
    C#FileStream复制大文件
    C#实用技巧:轻松实现对文件的操作
    C#实现所有经典排序算法
    c#生成的word文档
    C#编程技巧:轻松实现对文件的操作

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用