![]() |
|
![]() | ||
|
Subject:
Setting the desktop background in WinXP through the command prompt
Category: Computers > Graphics Asked by: malriem-ga List Price: $2.00 |
Posted:
22 Apr 2005 07:18 PDT
Expires: 22 May 2005 07:18 PDT Question ID: 512662 |
I want to set my background (on a Win XP machine) through the command prompt (ie mspaint.exe /b c:\temp\mypic.bmp) would set mypic.bmp as my current background using mspaint. I also want to do it without any third party software or code, only using standard windows programs. |
![]() | ||
|
There is no answer at this time. |
![]() | ||
|
Subject:
Re: Setting the desktop background in WinXP through the command prompt
From: vladimir-ga on 22 Apr 2005 16:00 PDT |
Create a file with the following contents: REGEDIT4 [HKEY_CURRENT_USER\Control Panel\Desktop] "Wallpaper"="c:\\path\\picture.bmp" And save it under some name, say wallpaper.reg. Then execute the following command: regedit /s wallpaper.reg The creation of the file can be easily automated with simple commands like echo "xxx" >> filename. Hope this helps. |
Subject:
Re: Setting the desktop background in WinXP through the command prompt
From: svancouw-ga on 28 Apr 2005 10:33 PDT |
Here is a much safer way to do it. The default location and name for the background image is c:\Documents and Settings\[username]\Local Settings\Application Data\Microsoft\Wallpaper1.bmp. The only that I need to know is what you intend on using it for. Will it be regularly changing with different filenames? Do you want it to run automatically? The bast way to do it is manually, as setting up a script with variables is a bit of a pain. Type the following: Copy /Y "[path and name of the image you want to use]" "c:\Documents and Settings\[username]\Local Settings\Application Data\Microsoft\" Wallpaper1.bmp This copies a file (should already be a .bmp) to the directory where windows stores the desktop image, and overwrites the old one without requiring a prompt. The name of the file is seperate so that the original file will be renamed when it arrives at the destination directory. If you want an automatic scripts with variables, you need to ask for more than $2. |
Subject:
Re: Setting the desktop background in WinXP through the command prompt
From: 888mark-ga on 10 Dec 2005 13:00 PST |
There is no Microsoft-supplied program to do this from the command line. And unfortunately neither of the answers above will work either. They change the the entry in the Registry but the background will not change until the next time you log in. The only way to do this reliably is with a program that calls SystemParametersInfo with function code SPI_SETDESKWALLPAPER and a string with the pathname of the file you wish to use as the new background. I have written a program that sets the desktop background to the filename given on the command line (if that fails for some reason, the old background is put back). It uses only documented interfaces and makes the call in such a way that the registry is not changed. Here is the code. I had to declare SPI_GETDESKWALLPAPER directly because for some reason my version of the SDK doesn't have it defined, even though it's documented! #include <windows.h> #include <stdio.h> const SPI_GETDESKWALLPAPER=115; void printusage(char *program) { fprintf(stderr, "Usage: %s background-file.bmp\n", program); fprintf(stderr, " Changes desktop background to background-file\n"); return; } int main(int argc, char *argp[]) { DWORD dResult; BOOL result; char oldWallPaper[255]; if (argc != 2) { printusage(argp[0]); return 1; } result = SystemParametersInfo( SPI_GETDESKWALLPAPER, sizeof(oldWallPaper)-1, oldWallPaper, 0); fprintf(stderr, "Current desktop background is %s\n", oldWallPaper); result = SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, argp[1], 0); if (!result) { dResult = GetLastError(); fprintf(stderr, "Attempt to set new desktop background failed; code %d\n", dResult); fprintf(stderr, "Will restore prior setting (%s)\n", oldWallPaper); result = SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, oldWallPaper, 0); return 2; } fprintf(stderr, "Desktop background changed to %s\n", argp[1]); return 0; } |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
Search Google Answers for |
Google Home - Answers FAQ - Terms of Service - Privacy Policy |