用Delphi实现壁纸更换

在Windows95/98中,都是使用注册表对系统数据进行管理,有关壁纸的设置数据保存在Hkey_Current_User\Control Panel\Desktop的Wallpaper和TileWallpaper 等键值中,只要成功修改了这两个键值,然后发消息给Windows即可更换壁纸。在本例的程序中,使用了一个Tform;两个Tspeedbutton(Speedbutton1用于接受用户的浏览命令,Speedbutton2用于接受用户的更换壁纸命令);一个Timage(用于显示图片)。另外,还用到一组文件控件:Tfilelistbox,Tdrivecombobox,Tdirectorylistbox,用于选择图片文件,可以设置FileListBox的mask属性,筛选显示在FileListBox 中的文件类型(如只显示.bmp文件)。下面的两个程序段是实现浏览图片和更换壁纸的关键代码。

Procedure Tform1.SpeedButton1Click(Sender:Tobject);
Begin
If (filelistbox1.FileName=
′′) Then {判断Filelistbox1中文件有没有被选中}
   Messagedlg(′请先选择一幅位图′,mtInformation,[mbOK],0)
Else
Image1.Picture.LoadFormFile(Filelistbox1.FileName);{加载图片文件并显示}
End;
ProcedureTform1.SpeedButton2Click(Sender:TObject);
Var
Reg:Tregistry;{Tregistry 对象在Registry 单元中声明,需用Uses令引用Registry单元}
}
Begin
If (Filelistbox1.FileName=′′) Then
Messagedlg(′请先选择一幅位图′,mtinformation,[mbOK],0)
Else
Begin
Reg:=Tregistry.Create;{创建Tregistry对象的实例}
Reg.Rootkey:= Hkey_Current_User;{设置根键名称}
Reg.OpenKey′Control Panel\Desktop′,False); {打开Control Panel\Desktop 路径对应的主键}
Reg.WriteString (′TileWallPaper′,
′0′);
Reg.WriteString
′Wallpaper′,fileli?
stbox1.FileName);{向TileWallpaper 和Wallpaper串覆盖写入新值}
Systemparametersinfo(SPI_SETDESKWallpaper,0,Nil,SPIF_SendChange);{向Windows发送消息,通知Windows更换壁纸}
Reg.CloseKey;{将更改内容写入注册表并关闭}
Reg.Free;{释放对象}
End;
End;

代码中用到的一些函数可以察看Delphi的联机帮助。需要注意的是:调用打开子键的函数OpenKey时,第二个参数一定要设为False。

时间: 2024-08-03 14:58:40

用Delphi实现壁纸更换的相关文章

SyncWall 1.5.1发布 壁纸更换工具

SyncWall 是一个具有特殊功能的基本壁纸更换工具.能够在客户端/服务器协议的多个工作站之间进行同步壁纸更换,每个工作站必须共享相同的文件池,而无需FTP或互联网下载.其他功能包括简单的多显示器支持,并能够添加特殊效果壁纸. SyncWall 1.5.1该版本修正了辅助监视器被拔掉时的错误. 软件信息:http://thehive.xbee.net/index.php?module=pages&func=display&pageid=1 下载地址:http://sourceforge.

SyncWall 1.5.0发布 壁纸更换工具

SyncWall 是一个具有特殊功能的基本壁纸更换工具.能够在客户端/服务器协议的多个工作站之间进行同步壁纸更换,每个工作站必须共享相同的文件池,而无需FTP或互联网下载.其他功能包括简单的多显示器支持,并能够添加特殊效果壁纸. SyncWall 1.5.0该版本增加了一个以前在系统托盘中的壁纸.它可以检测出显示器的分辨率或数字的变化.纠正全局快捷配置,纠正了一些翻译的文本,并修正了单显示器配置的问题. 软件信息:http://thehive.xbee.net/index.php?module=

SyncWall 1.4.0发布 壁纸更换工具

SyncWall 是一个具有特殊功能的基本壁纸更换工具.能够在客户端/服务器协议的多个工作站之间进行同步壁纸更换,每个工作站必须共享相同的文件池,而无需FTP或互联网下载.其他功能包括简单的多显示器支持,并能够添加特殊效果壁纸. SyncWall 1.4.0该版本增加了一个通过"显示参数"面板的下拉屏幕的拖放定位功能. 软件信息:http://thehive.xbee.net/index.php?module=pages&func=display&pageid=1 下载

SyncWall 1.2.1发布 壁纸更换工具

SyncWall是一个具有特殊功能的基本壁纸更换工具.能够在客户端/服务器协议的多个工作站之间的同步壁纸更换,每个工作站必须共享相同的文件池,而无需FTP或互联网下载.其他功能包括简单的多显示器支持,并能够添加特殊效果壁纸. SyncWall 1.2.1该版本修复了Gnome3.x(在http://www.aliyun.com/zixun/aggregation/13835.html">Ubuntu11.10测试)的一个不正确的多显示器模式,增加了一个线程来提高网络的支持,并增加了一个显示

Wally 2.4.4发布 QT4壁纸更换工具

Wally是一个使用多个数据源的QT4壁纸更换工具,如文件.文件夹.FTP远程文件夹.Flickr.雅虎.Panoramio.Ipernity.http://www.aliyun.com/zixun/aggregation/16874.html">Photobucket.Buzznet.Picasa.SmugMug.谷歌.Vladstudio.deviantART图像,等等.它通用于多种语言,支持Linux窗口管理器,包括:GNOME.GnomeShell.KDE3.KDE4.XFCE4.

如何用统一壁纸更换电脑壁纸

  1.安装按统一壁纸后,双击桌面快捷方式打开"统一壁纸". 2.选中自己喜欢的壁纸单击即可成功更换桌面壁纸~ 还有更多壁纸种类等你来选择哦!

三星A7(2016)桌面背景怎么换?壁纸更换方法

我们这款手机的换壁纸的方法其实是非常的简单了,我们只需要长按桌面即可进行更换了,下面我们就一起来看看如何更换了哦. 1.在待机页面下,长按主屏幕页面空白处.    2.点击[壁纸].    3.点击[从相册]或选择自带壁纸,这里以选择自带壁纸为例,向左滑动自带壁纸.(注:点击左上角[主屏幕],可以切换为为锁定屏幕.主屏幕与锁定屏幕设置墙纸.)    4.选择喜欢的壁纸.    5.点击[设置为壁纸].    6.选择设置壁纸的位置,这里以选择"全部"为例.    7.壁纸设置成功. 

Kubuntu美化Plasma桌面与壁纸更换软件wally

KPackageKit里KDE桌面环境分类,http://www.aliyun.com/zixun/aggregation/8601.html">搜索关键词 artwork 和 style,带这些关键词的都是美化包(这边强烈建议安装Synaptic Ubuntu的软件包管理程序,很直观的添加删除软件,或者用命令行的aptitude,KPackageKit毕竟是个人作品,功能缺失,要么只显示artwork的包,要么显示KDE的包,没法筛选) plasma-desktopthemes-artw

苹果ios7壁纸更换 iphone5s/5c个性壁纸设置方法

1)我们到iphone appstore 去搜索"好壁纸"然后直接安装在你的iphone中了   2)如下图我们点击"好壁纸"-"设置"-"墙纸与亮度",最后点击"选取墙纸"   3)这样我们在iphone5s的"好壁纸"保存的图都在手机的"相机胶卷"里面,大家点击进入后进行图片预览,在预览界面右下方将有个"设置"按钮.(如下图所示)   4)点击