Board logo

标题: [已解决]批处理如何按月更换jpg格式的桌面背景壁纸? [打印本页]

作者: zjhuzi    时间: 2009-2-15 04:02     标题: [已解决]批处理如何按月更换jpg格式的桌面背景壁纸?

各位,有没有一个批处理能实现自动更换壁纸啊,

1、按月更换

图片所在目录地址是

d:\My Documents\Wallpaper\139calendar2009

2、批处理,能根据当前系统日期自动选择壁纸
如,01月,则选择 “01.jpg” 作为当前桌面壁纸
        .........
        12月,              “12.jpg”。。。。
作者: lixiaodaoaaa    时间: 2009-2-15 05:18     标题: 呵呵

  1. set regadd=reg add "HKEY_CURRENT_USER\Control Panel\Desktop
  2. %regadd%" /v TileWallpaper /d "0" /f
  3. %regadd%" /v Wallpaper /d "d:\My Documents\Wallpaper\139calendar2009\01.bmp" /f
  4. %regadd%" /v WallpaperStyle /d "2" /f
  5. echo 正在更换桌面背景
  6. start RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  7. echo 成功更换桌面背景完成!!
复制代码


这是以前流传很就的东西
但每月更换,估计可能不大
我也寻求高人 做每月更换的

[ 本帖最后由 lixiaodaoaaa 于 2009-2-15 05:19 编辑 ]
作者: HoeKey    时间: 2009-2-15 07:12

非常好用啊 学习一下
作者: zjhuzi    时间: 2009-2-15 09:45

经测试,结果如下:
1、图片格式是*.jpg
2、更换成功,但没有立即显示,须在再次点击该图片>点应用方才显示。
3、没有根据当前日期选择相应的图片做壁纸,有点遗憾。


感谢lixiaodaoaaa坛友热心的回答,请继续,谢谢。


问题未解,望各坛友给予帮助,本人衷心感谢.

[ 本帖最后由 zjhuzi 于 2009-2-15 09:49 编辑 ]
作者: HoeKey    时间: 2009-2-15 11:01

能不能指定文件夹 然后随机更换文件夹内的图片
作者: Batcher    时间: 2009-2-15 17:21

没有立即显示,可以尝试重启explorer.exe进程。
按月更换,可以在批处理中创建计划任务。
作者: shqf    时间: 2009-2-15 20:14

先把系统日期格式处理成YYYY-MM-DD这样的格式:
  1. @echo off
  2. reg add "hkcu\control panel\Desktop" /v Wallpaper /d "D:\My Documents\Wallpaper\139calendar2009\%date:~5,2%.bmp" /f>nul
  3. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
复制代码
把这个BAT放在系统启动项里即可。
对4楼所说的情况,经在本机上测试发现,RunDll32.exe此句对JPG格式的文件没有用啊,是不能更新滴(此时重启explorer.exe进程,也无法更新),但对BMP格式的文件能起作用,可以更新呵。

[ 本帖最后由 shqf 于 2009-2-15 20:54 编辑 ]
作者: Batcher    时间: 2009-2-15 20:51     标题: 回复 7楼 的帖子

  1. @echo off
  2. REM 周一到周日每天使用不同的桌面背景
  3. REM 假设系统日期格式是 2015/04/20 周一
  4. REM 在 C:\桌面背景图片 文件夹下面准备七个图片 周一.bmp 周二.bmp 周三.bmp 。。。
  5. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d "C:\桌面背景图片\%date:~11%.bmp" /f
  6. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
复制代码
JPG格式可以参考这个:
趁今天有点空,发点实用的P

我知道这个有人发过,全部搜索了一遍,我的还是有不同点的。
我的能设置jpg图片为背景,前面也有人发过能设jpg图片的,不过要DLL文件支持,而我的不用。
其中好像涉及到系统自动将jpg转化为bmp格式的问题,希望有识之士能研究出来系统怎么个自动转换的原理。

"%userProfile%\Local Settings\Application Data\Microsoft\Wallpaper1.bmp"
此为当前桌面背景完整路径。

测试环境:XP SP2
  1. ::复制更换桌面背景.bat::
  2. ::将bmp格式图片拖入P中
  3. @echo off
  4. title 更换桌面背景
  5. cd/d %~dp0
  6. if /i %~x1==.BMP copy %1 "%userProfile%\Local Settings\Application Data\Microsoft\Wallpaper1.bmp"
  7. echo 正在更换桌面背景
  8. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  9. goto :eof
  10. ::复制更换桌面背景.bat::
  11. ::::::::::::::::::::::::
复制代码
这个在论坛有人发过。
  1. ::一般更换墙纸.bat::
  2. ::图片为bmp格式
  3. ::拖入bmp格式图片即设置它为背景。
  4. ::直接双击运行,若当前目录中有bmp格式图片,则将名称排在最后的一张设为壁纸
  5. @echo off
  6. title 更换墙纸
  7. setlocal enableDelayedExpansion
  8. set pic=%1
  9. if "!pic!"=="" call :search
  10. if "!pic!"=="" set pic="%userProfile%\Local Settings\Application Data\Microsoft\Wallpaper1.bmp"
  11. echo 正在添加注册表项目...
  12. reg add "HKCU\Control Panel\Desktop" /v Wallpaper /d !pic! /f>nul
  13. reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /d "2" /f>nul
  14. echo 正在更换桌面背景
  15. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  16. goto :eof
  17. :search
  18.  cd/d "%~dp0"
  19.  for /f "delims=" %%a in ('dir/b *.bmp') do (
  20.   set pic="%~dp0%%a"
  21.  )
  22.  goto :eof
  23. ::一般更换壁纸.bat::
  24. ::::::::::::::::::::
复制代码
  1. ::强制更换壁纸.bat::
  2. ::有些系统不能成功
  3. ::图片为bmp或jpg格式
  4. ::如果图片格式为jpg,则桌面图标文字有背景色(成功设置后,运行一遍下面的还原壁纸可去除背景色)
  5. ::拖入图片运行
  6. ::双击直接运行,名字排后的一张设为背景
  7. ::同时可以禁止通过桌面属性来更改壁纸(用软件更改不能禁止)
  8. @echo off
  9. title 更换壁纸
  10. setlocal enableDelayedExpansion
  11. set pic=%1
  12. if "!pic!"=="" call :search
  13. if "!pic!"=="" set pic="%userProfile%\Local Settings\Application Data\Microsoft\Wallpaper1.bmp"
  14. echo 正在添加注册表项目...
  15. reg add "HKCU\Control Panel\Desktop" /v Wallpaper /d !pic! /f>nul
  16. reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /d "2" /f>nul
  17. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v Wallpaper /d !pic! /f>nul
  18. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v WallpaperStyle /d "2" /f>nul
  19. echo 正在更换桌面背景
  20. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  21. goto :eof
  22. :search
  23.  cd/d "%~dp0"
  24.  for /f "delims=" %%a in ('dir/b *.jpg *.bmp') do (
  25.   set pic="%~dp0%%a"
  26.  )
  27.  goto :eof
  28. ::强制更换壁纸.bat::
  29. ::::::::::::::::::::
复制代码
  1. ::还原壁纸.bat::
  2. ::确保有"%userProfile%\Local Settings\Application Data\Microsoft\Wallpaper1.bmp"
  3. @echo off
  4. title 还原壁纸
  5. set pic="%userProfile%\Local Settings\Application Data\Microsoft\Wallpaper1.bmp"
  6. echo 正在添加注册表项目...
  7. reg add "HKCU\Control Panel\Desktop" /v Wallpaper /d %pic% /f>nul
  8. reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /d "2" /f>nul
  9. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v Wallpaper /d %pic% /f>nul
  10. reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v WallpaperStyle /d "2" /f>nul
  11. echo 正在还原桌面背景
  12. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  13. goto :eof
  14. ::还原壁纸.bat::
  15. ::::::::::::::::
复制代码
  1. ::取消壁纸限制.bat::
  2. @echo off
  3. title 取消壁纸限制
  4. echo 正在删除注册表项目...
  5. reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v Wallpaper /f>nul
  6. reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v WallpaperStyle /f>nul
  7. echo 正在刷新
  8. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  9. goto :eof
  10. ::取消壁纸限制.bat::
  11. ::::::::::::::::::::
复制代码
说明文档
存放桌面背景的几个路径
-------------------------
C:\WINDOWS\Web\Wallpaper
::jpg桌面(还有Bliss.bmp)
C:\WINDOWS
::bmp桌面
[图片收藏]或[我的图片][My Pictures]
::jpg、bmp、gif
-------------------------
其他两个位置
-------------------------
你指定的图片位置
::jpg、bmp、gif
"%userProfile%\Local Settings\Application Data\Microsoft\Wallpaper1.bmp"
::无特殊情况即为当前桌面背景
=========================

原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=41491
作者: ydhrx    时间: 2009-12-18 21:57     标题: 附件

附件打不到?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2