用C++更改Windows 7壁纸

Change Windows 7 Wallpaper in C++

本文关键字:壁纸 Windows 更改 C++      更新时间:2023-10-16

我在学校看到有人有一个程序,本应更改背景并将您注销(这样更改才会生效),但它只在他的计算机上起作用,他"丢失"了源代码。我已经在网上寻找可以做到这一点的代码有一段时间了,所以我可以试用它

我发现了这个代码(C++)

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

有点奏效了。。

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

我一辈子都搞不清它为什么停止工作(我试过多个文件扩展名,所以我知道这不是问题所在)。

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

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

谢谢!

编辑:如果我将image.jpg更改为image.bmp,它每次都会更改。。但这意味着它只适用于*.bmp?我以前用过jpeg。

#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;
}