在winXP中可以直接把jpeg的图像做为桌布。
不知道是转成BMP还是用了ActiveDesktop。
但其好像把JPG转为bmp因为可以在注册表中看到。
虽然我知道怎样把JPG转为BMP但我想知道XP中是否有这样一个API函数?
如果是用了activedesktop该如何调用?
或者是其他的什么方法
不知道是转成BMP还是用了ActiveDesktop。
但其好像把JPG转为bmp因为可以在注册表中看到。
虽然我知道怎样把JPG转为BMP但我想知道XP中是否有这样一个API函数?
如果是用了activedesktop该如何调用?
或者是其他的什么方法
解决方案 »
- delphi怎样将入库、出库、库存三个表的内容融合到一张表做成详细查询页面!
- 求dsEditModes的用法
- 用WebBrowser控件显示网页后 比如我点击网页里的CheckBox,实质变化,如何捕获次过程?
- 数据的图形统计问题
- 关于adotable控件的一个简单问题。在线等!
- 如何判断数据库中的表是否存在
- 怎样在DBGrid中限制使用“CTRl+DEL“不删除数据表格中的记录?
- 怎样在程序中实现对DBgrid的options属性进行设置?
- 为什么TQuery控件的RecNo属性老是-1阿?
- 如何区分一字符串中的英文字母和中文字符?
- 写一个关于MYSQL的程序,高分请教
- 在线_初级问题:query1中使用参数时fastreport出错
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,pchar(your_filename),SPIF_UPDATEINIFILE)
JPG就不行了
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;
你如果用ACTIVEDESKTOP,就可以用JPG文件。但是那好像需要一个HTML文件支持!