在Delphi中更改墙纸
来源:互联网 发布:答题王相似的软件 编辑:程序博客网 时间:2024/04/19 18:31
你学会了VB,你知道了在VB中如何通过程序来更换Windows的墙纸,但是,在Delphi中如何同VB一样方便地更换墙纸呢?其实,也是很方便的,不信?请参考以下的程序。
procedureChangeIt;
var
Reg:TregIniFile;
begin
Reg:p TRegIniFile.Create('ControlPanel');
Reg.WriteString('desktop','Wallpaper',
'c:|pwin95|forwall.bmp');
Reg.WriteString('desktop','TileWallpaper
','1');
Reg.Free;
SystemParametersInfo(SPI-SETDESKWALLPAPER,0
,nil,SPIF-SENDWININICHANGE);
end;
--------------------------------------------------
在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。
- 在Delphi中更改墙纸
- 如何在Delphi中更改墙纸
- 如何在程序中动态设置墙纸
- 如何在程序中动态设置墙纸
- 如何在程序中动态设置墙纸
- 如何在程序中动态设置墙纸
- 如何在程序中动态设置墙纸
- 如何在程序中动态设置墙纸
- PAIP.在程序中设置壁纸墙纸
- 如何在程序中动态设置墙纸
- Delphi内更换墙纸
- Delphi中更改标题栏上的图标
- Delphi中更改桌面图片的方法
- 在VB中更改结构
- 在windows 中更改名称
- 在Eclipse中更改字体大小
- Delphi中实现可以更改大小的对话框
- Delphi中如何动态更改DBGrid的颜色
- 西游记之几大教主的师承关系
- 神话中的诸神辈分
- 动画显示窗体
- <窗体特效〉半透明窗体 像Foxmail3.1beta的一样
- Delphi程序中操作注册表
- 在Delphi中更改墙纸
- Foxmail、MSN的消息窗体的效果
- 移动无标题栏窗口
- Delphi7中实现停靠功能
- 课堂笑话
- SQL常用命令使用方法
- 自己制作不规则窗体
- ini 文件 使用说明
- 2G内存刚刚好 浅谈4G内存对笔记本的影响