用C#设置桌面墙纸

原创 2006年05月20日 03:24:00

网上有很多用其它语言来设置桌面壁纸的方法,但是我没有找到用C#语言来写的,由于自己需要在项目中做这样一个功能,所以通过察看其它语言写的资料来自己用C#写了一个这样的程序。

主要是同过WINDOWS API函数来设置壁纸,然后还要通过写注册表来设置壁纸的显示方式(中心、平铺、拉伸)

注意事项:首先,如果要设置壁纸后立即出现中心、平铺或拉伸的效果,就要先设置壁纸的显示方式,再设置壁纸;其次,为了在桌面属性里看到壁纸,并且避免重启后壁纸消失。那么就应该把位图(设置壁纸需要是位图格式)保存到一个目录,然后把壁纸路径设为这个路径。

HKEY_USERS/.DEFAULT/Control Panel/DeskTop中,

         TileWallpaper              WallpaperStyle
居中:         0                           0
平铺:         1                           0
拉伸:         0                           2  

 

添加命名空间:

using System.Runtime.InteropServices;  //调用WINDOWS API函数时要用到
using Microsoft.Win32;  //写入注册表时要用到

 

  //以中心方式显示墙纸

 private void menuItemCenter_Click(object sender, System.EventArgs e)
  
{
      
//设置墙纸显示方式
      RegistryKey myRegKey = Registry.CurrentUser.OpenSubKey("Control Panel/desktop",true);
      
//赋值
      
//注意:在把数值型的数据赋到注册表里面的时候,
      
//如果不加引号,则该键值会成为“REG_DWORD”型;
      
//如果加上引号,则该键值会成为“REG_SZ”型。
      myRegKey.SetValue("TileWallpaper","0");
      myRegKey.SetValue(
"WallpaperStyle","0");

      
//关闭该项,并将改动保存到磁盘
      myRegKey.Close(); 

      
//设置墙纸
      Bitmap bmpWallpaper = (Bitmap)pictureBox1.Image;
      bmpWallpaper.Save(
"resource.bmp",ImageFormat.Bmp); //图片保存路径为相对路径,保存在程序的目录下
      string strSavePath = Application.StartupPath + "/resource.bmp";
      SystemParametersInfo(
20,1,strSavePath,1);
  }

 

  //以平铺方式显示墙纸

  private void menuItemTile_Click(object sender, System.EventArgs e)
  
{
      
//设置墙纸显示方式
      RegistryKey myRegKey = Registry.CurrentUser.OpenSubKey("Control Panel/desktop",true);
      myRegKey.SetValue(
"TileWallpaper","1");
      myRegKey.SetValue(
"WallpaperStyle","0");
      myRegKey.Close(); 

      
//设置墙纸
      Bitmap bmpWallpaper = (Bitmap)pictureBox1.Image;
      bmpWallpaper.Save(
"resource.bmp",ImageFormat.Bmp); //图片保存路径为相对路径,保存在程序的目录下
      string strSavePath = Application.StartupPath + "/resource.bmp";
      SystemParametersInfo(
20,1,strSavePath,1);
  }

 

  //以拉伸方式显示墙纸

 private void menuItemStretch_Click(object sender, System.EventArgs e)
  
{
      
//设置墙纸显示方式
      RegistryKey myRegKey = Registry.CurrentUser.OpenSubKey("Control Panel/desktop",true);
      myRegKey.SetValue(
"TileWallpaper","0");
      myRegKey.SetValue(
"WallpaperStyle","2");
      myRegKey.Close(); 

      
//设置墙纸
      Bitmap bmpWallpaper = (Bitmap)pictureBox1.Image;
      bmpWallpaper.Save(
"resource.bmp",ImageFormat.Bmp); //图片保存路径为相对路径,保存在程序的目录下
      string strSavePath = Application.StartupPath + "/resource.bmp";
      SystemParametersInfo(
20,1,strSavePath,1);
  }

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C# 替换桌面背景图片

做这个纯属和郁闷,win7家庭普通版的电脑背景图片居然不能动态切换。去哦一气之下就做了这个public FrmpictureBox()        {      ...

C# 实现设置桌面背景图片的功能

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy...

Java面试题全集(上)

2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,于是我花了半个月时间对这个所谓的《...

用C#实现动态桌面墙纸(转)

转自:http://www.edu1995.com/jysy/ReadNews.asp?TypeId=16&NewsId=617 用C#实现动态桌面墙纸 发表日期:2009年4月27日编辑: 四...

VC++设置桌面墙纸实例

  • 2013-05-06 18:05
  • 13KB
  • 下载

WinCE桌面墙纸及图标更换

http://www.hzlitai.com.cn/article/ARM9-article/system/1704.html   网上关于WinCE更换墙纸的文章一大堆,我也来写一篇,和网上已有...

pv桌面墙纸

  • 2012-12-03 21:16
  • 1.91MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)