用C ++更改Windows 7壁纸

时间:2012-02-20 18:29:20

标签: c++ windows wallpaper

我看到有人在学校有一个应该改变背景的程序,并将你注销(所以改变会生效)但它只能在他的计算机上运行,​​并且“丢失”了源代码。 我一直在网上寻找可以做到这一点的代码,所以我可以尝试一下。

我找到了这段代码(C ++)

#include <windows.h>
int main()
{
    SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, (PVOID)"image.jpg", SPIF_UPDATEINIFILE );
}

有点工作..

它与位于同一文件夹中的图像一起工作了两次,我测试了两个图像,在第二个图像之后它就停止了工作。

我不能为我的生活弄清楚它为什么停止工作(我尝试了多个文件扩展名,所以我知道这不是问题)。

我在Dev-C ++工作,如果这对任何人都有影响。

此外,我希望能够修改代码以使用网址而不是本地图像...这可能吗?

谢谢!

修改:如果我将image.jpg更改为image.bmp,则每次都会更改。但这意味着它只适用于*.bmp?之前我曾经和jpeg合作过。

1 个答案:

答案 0 :(得分:0)

#include <windows.h>
int main()
{   
 int i;
 for(i=0;;i++)
 {
  Sleep(800);
  if(i%2==0)
  {
   const wchar_t *filenm = L"C:\\Pictures\\image1.jpg"; //ADDRESS of first image
   bool isWallSet=SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0,(void*)filenm,SPIF_UPDATEINIFILE);  
  }
  else
  {
   const wchar_t *filenm = L"C:\\Pictures\\image2.jpg"; //ADDRESS of second image
   bool isWallSet=SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0,(void*)filenm,SPIF_UPDATEINIFILE);  
  }
 }
   return 0;
}