User Tools

Site Tools


blog:change_windows_desktop_background_for_day_and_night_using_batchfile

This is an old revision of the document!


Change windows desktop background for day and night, using batchfile

Having a bright, blue wallpaper for day use and a darker, reddish wallpaper for evening/night is useful stay in synch with the real time of day. So, i wanted my windows xp machine automatically switch to the day wallpaper from 7-20 and to night from 20-7 hours. The following batch script does this, without any add-on software. To use, copy-paste the file and store it to your scripts directory (e:\etc in my case).

Advantages:

  • No additional software (apart from the script) has to be installed
  • No additional load on the computer by a desktop switcher, except from the tasks that you define yourself

Notes:

  • You must convert your jpg wallpaper to bmp (changing the dimensions to exactly match your screen). You can't directly use a jpg file as a windows wallpaper (the settings dialog creates a bmp file behind your back!).
  • Configuration is by changing the set … variable at the top of the file
  • Test by calling the batchfile
  • To automate the wallpaper switch:
    • make a link in the windows autostart folder
    • add an hourly task to the task manager (or even cleaner, two tasks at the switch times (7:00 and 20:00)
REM :: chwpdn. batchange to CHange the WallPaper for Day and Night
REM :: v1.0 B.Brunner, 23.12.2010 (brb_trash at epr dot ch)
REM Prepare two bmp files to be used during day and night 
REM - jpgs dont work directly, convert to bmp of your screen resolution first!
REM - change start and end day hour to your needs
REM - store this batchfile in a place like e:\etc
REM - make a link to this batchfile in your autostart folder (set minimized in the link)
REM - using the task manager have the batchfile start every hour, to switch during the day
REM 
REM Configuration changes go here
set wpnight=e:\etc\wallpaper_night.bmp
set wpday=e:\etc\wallpaper_day.bmp
set daystarthour=7
set dayendhour=20
 
REM Set hours variable 
for /f "tokens=1-3 delims=:." %%a in ( "%time%") do set hours=%%a
 
REM Use day wallpaper, except from 00:00-08:00 and 20:00-23:59
set wallpaper=%wpday%
if %hours% LSS %daystarthour% goto setnight
if %hours% GTR %dayendhour% goto setnight
goto setit
 
:setnight
set wallpaper=%wpnight%
 
:setit
Echo Setting wallpaper to %wallpaper%
 
REG ADD "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d %wallpaper% /f 
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

~~LINKBACK~~

Discussion

Enter your comment. Wiki syntax is allowed:
   _  __ __  __   _  __   __  ___  ____ 
  / |/ / \ \/ /  / |/ /  /  |/  / / __ \
 /    /   \  /  /    /  / /|_/ / / /_/ /
/_/|_/    /_/  /_/|_/  /_/  /_/  \____/
 
blog/change_windows_desktop_background_for_day_and_night_using_batchfile.1293089057.txt.gz · Last modified: 2010-12-23 08:24 by brb