Изменить обои Windows 7 в C ++ - PullRequest
2 голосов
/ 20 февраля 2012

В школе я увидел кого-то, у кого была программа, которая должна была изменить фон, и выйти из системы (чтобы изменения вступили в силу), но она работала только на его компьютере, и он «потерял» исходный код. Некоторое время я искал в Интернете код, который бы это делал, поэтому я мог поэкспериментировать с ним.

Я нашел этот код (C ++)

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

который вроде работал ..

Он работал дважды с изображением, находящимся в одной и той же папке, и я протестировал два изображения, а после второго он просто перестал работать.

Не могу понять, почему она перестала работать (я пробовал несколько расширений файлов, поэтому знаю, что это не проблема).

Я работаю в Dev-C ++, если это кому-нибудь важно.

Кроме того, я хотел бы иметь возможность изменить код для использования URL вместо локального изображения ... это было бы возможно?

Спасибо!

Редактировать: Если я изменю image.jpg на image.bmp, он будет меняться каждый раз ... Но это значит, что он будет работать только с *.bmp? Я работал с jpeg раньше.

1 Ответ

0 голосов
/ 16 февраля 2015
#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;
}
...