如何用delhpi程序改变win xp桌面墙纸?

zhikaijin 2008-05-30 08:12:07
如何用delhpi程序改变win xp桌面墙纸?
aiirii快给我答复吧
thank you!
...全文
49 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
无条件为你 2008-05-30
  • 打赏
  • 举报
回复
选择无满意答案结贴,你的分还是被扣掉了,你何必不把分散给回答你问题的人呢?

别人回答对了,你却不给分,你这样是打击回答你问题的人,小心你的号被封掉。
woshizxw 2008-05-30
  • 打赏
  • 举报
回复

∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞

力争成为中国最大的架构师群联盟,架构师技术交流群:28995710已接近尾声,62402336正式开放!!!

已经上传的顶级软件产品的架构分析,本群资料仅供研究学习,不得商用!!!
google 、
eBay、
Youtube、
淘宝等
......
技术文章包括:
《自己动手写操作系统》
《搜索引擎-原理、技术与系统》
《企业应用架构模式》
......
重要的RUP实例
设计模式精解
......
资料陆续上传中
∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞∽∝∞
无条件为你 2008-05-30
  • 打赏
  • 举报
回复
没有那么麻烦,只用一句话就可以实现了:

SystemParametersInfo(SPI_SETDESKWALLPAPER,1,pointer(pchar('C:\WINDOWS\Web\Wallpaper\水帘洞.bmp')),1);

缺点是必须为BMP类型的图片,如果是JPG,直接用流转一下就成Bmp了,很简单的。
caize131 2008-05-30
  • 打赏
  • 举报
回复
procedure TForm1.Button4Click(Sender: TObject);
var
i:Integer;
j, dir:string;
Reg:TRegistry;
ADeskTop:IActiveDesktop;
wallpaper:PwideChar;
begin
dir:='C:\WINDOWS\Web\Wallpaper\';
for i:=0 to ListBox2.Items.Count-1 do
if ListBox2.Selected[i] then
j:=dir + ExtractFileName(ListBox2.Items[i]);
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey('Control Panel\Desktop',True) then
Reg.WriteString('Wallpaper',j);
ADeskTop:=CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
GetMem(wallpaper,128);
ADeskTop.GetWallpaper(wallpaper,128,0);
ADeskTop.SetWallpaper(wallpaper,0);
ADeskTop.ApplyChanges(AD_APPLY_ALL);
SystemParametersinfo(SPI_SETDESKWALLPAPER,0,nil,3);
InvalidateRect(0, nil, true);
end;

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧