请问怎么用DELPHI或其它编程工具换系统的桌面? ( 积分: 100 )

  • 主题发起人 主题发起人 haoslm
  • 开始时间 开始时间
H

haoslm

Unregistered / Unconfirmed
GUEST, unregistred user!
要求要直接用JPG那种,不是通过把JPG转换成BMP再把BMP设置成桌面的,要直接把JPG设置成桌面的.就是在系统的 属性-桌面 里看见的是JPG而不是BMP的那种,就象微软出的 壁纸自动换一样的效果
 
Uses ShlObj, ComObj;

Procedure SetWallPaper(StrFile: String; Style: Integer);
Var
DT: IActiveDesktop;
WPO: TWallpaperOpt;
WS: WideString;
Begin
DT := CreateComObject(CLSID_ActiveDesktop) As IActiveDesktop;
WS := StrFile;
Case Style Of
0: WPO.dwStyle := WPSTYLE_CENTER; {居中}
1: WPO.dwStyle := WPSTYLE_TILE; {平铺}
2: WPO.dwStyle := WPSTYLE_STRETCH; {拉伸}
Else WPO.dwStyle := WPSTYLE_CENTER;
End;
WPO.dwSize := SizeOf(WPO);
DT.SetWallpaperOptions(WPO, 0);
DT.SetWallPaper(PwideChar(WS), 0);
DT.ApplyChanges(AD_APPLY_ALL);
End;

SetWallPaper('c:/xxx.jpg', 1);
 
windows要求桌面必须是bmp格式的
lz说的方式也会在后台更改格式的
 
后退
顶部