是不是所有的api函数都在windows.pas中的呢?
我用了其中想改变壁纸的函数可总是没有成功,而且要手动去刷新桌面后就变成无墙纸桌面。。??源码如下:
filename:='G:\其他软件\壁纸\flower\hua007.JPG';
systemparametersinfo(spi_setdeskwallpaper,0,pchar(filename),spif_updateinifile);我是delphi初学者,我需要去买本api大全来看吗?
我用了其中想改变壁纸的函数可总是没有成功,而且要手动去刷新桌面后就变成无墙纸桌面。。??源码如下:
filename:='G:\其他软件\壁纸\flower\hua007.JPG';
systemparametersinfo(spi_setdeskwallpaper,0,pchar(filename),spif_updateinifile);我是delphi初学者,我需要去买本api大全来看吗?
systemparametersinfo(spi_setdeskwallpaper,0,pchar(filename),0);
//spi_setdeskwallpaper-->0
procedureChangeIt;
var
Reg:TregIniFile;
begin
Reg:ΚTRegIniFile.Create(′ControlPanel′);
Reg.WriteString(′desktop′,′Wallpaper′,′c:ιpwin95ιforest.bmp′);
Reg.WriteString(′desktop′,′TileWallpaper′,′1′);
Reg.Free;
SystemParametersInfo(SPI-SETDESKWALLPAPER,0,nil,SPIF-SENDWININICHANGE);
end;
设置墙纸
procedure TForm1.Button1Click(Sender: TObject);
var
ADeskTop:IActiveDesktop;
wallpaper:PwideChar;
begin
ADeskTop:=CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
wallpaper:='d:\2.bmp';
ADeskTop.SetWallpaper(wallpaper,0);
ADeskTop.ApplyChanges(AD_APPLY_ALL);
end;
///改成:
systemparametersinfo(spi_setdeskwallpaper,0,pchar(filename),0);
//spi_setdeskwallpaper-->0 改了也一样啊其他又看不懂,后面两个是用什么实现的啊???
SystemParametersInfo SPI_SETDESKWALLPAPER, 0, CDBox.filename, SPIF_UPDATEINIFILEor delphiseabird(沙鸥)说的通过修改注册表来实现。
reg:=tregistry.Create;
try
reg.rootkey:=HKEY_CURRENT_USER;
if reg.openkey('\Control Panel\DeskTop', False) then
begin
Reg.WriteString('TileWallPaper', '0'); // 平铺方式,TileWallPaper为1
Reg.WriteString('WallPaperStyle', '0'); // 非拉伸方式,WallPaperStyle为0
Reg.WriteString('WallPaper', filename[i]); // 墙纸文件的路径
Reg.CloseKey;
end
finally
Reg.Free;
end;
SystemParametersInfo(SPI_SETDESKWALLPAPER,0,nil,SPIF_SENDWININICHANGE);