紧急求助:怎样将一幅图片设为墙纸,而不是设为桌面项?(100分)

  • 主题发起人 主题发起人 Blue_Ice
  • 开始时间 开始时间
B

Blue_Ice

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp; &nbsp;采用IActiveDesktop接口可以将一幅图片设为活动桌面:<br>&nbsp; &nbsp; ADeskTop.SetWallpaper(wallpaper,0);<br>&nbsp; &nbsp; ADeskTop.ApplyChanges(AD_APPLY_ALL);<br>&nbsp; &nbsp; 但是在Win2000下直接将图片设为桌面项,活动桌面默认显示当前浏览器默认主页的WEB<br>内容,即桌面的一部分会变成WEB页。而如果只将图片设为墙纸就没有这种问题,因此,请问<br>各位大虾们,怎样只把图片设成墙纸,而不是桌面项呢?紧急!
 
实际上是更改WINDOWS注册表的设置<br>procedure Tform1.changewallpaper;//过程<br>&nbsp;var <br>&nbsp; &nbsp;reg:treginifile;<br>&nbsp;begin<br>&nbsp; &nbsp;reg:=treginifile.create('control panel');<br>&nbsp; &nbsp;reg.writestring('desktop','wallpaper','C:/setup.bmp');<br>&nbsp; &nbsp;reg.writestring('desktop','tilewallpaper','1');<br>&nbsp; &nbsp;reg.free;<br>&nbsp; &nbsp;systemparametersinfo(spi_setdeskwallpaper,0,nil,spif_sendwininichange);<br>&nbsp;end;
 
BOOL SystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam,UINT &nbsp;fWinIni);[in c]<br>function systemparametersinfo(uiAction :DWORD, uiOaram :DWORD, <br>pvParam :pointer, fWinIni :DWORD) :boolean; [in pascal]<br><br>其中<br>uiAction参数设置为SPI_SETDESKWALLPAPER、<br>uiParam参数为0、<br>pvParam参数:<br>(1)你的BMP文件名称[串指针类型](请放在搜索路径下,否则带文件名称带路径)。<br>(2)设置为''移除墙纸、<br>(3)设置为SETWALLPAPER_DEFAULT或nil恢复默认墙纸。<br>fWinIni参数:<br>设置为SPIF_UPDATEINIFILE:保存系统配置。<br>设置为SPIF_SENDCHANGE:改变完成后广播WM_SETTINGCHANGE消息。 <br>
 
后退
顶部