找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 38964|回复: 9

[系统相关] [已解决]批处理自动设置桌面背景

[复制链接]
发表于 2010-11-26 20:58:18 | 显示全部楼层 |阅读模式
如题:怎样才能做到啊?   
嗯,详细说下我的目标:把某张图片拖到P处理a.bat(注意:没有打开P),P自动把该图片设置为桌面背景,大家帮忙下

已知:
1.设置桌面背景的代码为
  1. set regadd=reg add "HKEY_CURRENT_USER\Control Panel\Desktop%regadd%" /v TileWallpaper /d "0" /f
  2. %regadd%" /v Wallpaper /d "c:\WINDOWS\Web\Wallpaper\a.bmp" /f
  3. %regadd%" /v WallpaperStyle /d "2" /f
  4. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
复制代码

2.这张图片一定得是BMP格式的,否则会失败,原因未知

[ 本帖最后由 wangjile 于 2010-11-26 21:27 编辑 ]

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2010-11-26 21:10:55 | 显示全部楼层

回复 1楼 的帖子

将"c:\WINDOWS\Web\Wallpaper\a.bmp"改为%1试试。。。

[ 本帖最后由 batman 于 2010-11-26 21:14 编辑 ]

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2010-11-26 21:24:55 | 显示全部楼层
OK,解决了,感谢蝗虫大神

以下是代码:

  1. set zx=%1
  2. reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d %zx% /f
  3. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
复制代码
 楼主| 发表于 2010-11-26 21:26:28 | 显示全部楼层
感谢版主,忘了刷新网页了,没看到你的回复,在群里解决了,看来英雄所见略同啊
发表于 2010-11-26 22:20:38 | 显示全部楼层
%1可以直接使用,没必要再set它
发表于 2010-11-26 22:23:51 | 显示全部楼层
哦哦  其实我是来学习的
  谢谢你们  免费教材
 楼主| 发表于 2010-11-27 17:46:53 | 显示全部楼层
斑竹和5楼大才啊,的确,没必要set       %1的,完全可以
那么,我再问下,能不能把P改到这种程度:

当我双击P时,P会自动将本文件夹下任意一张BMP图片设置为桌面背景

可以做到吗??

[ 本帖最后由 wangjile 于 2010-11-27 17:48 编辑 ]
 楼主| 发表于 2010-12-1 17:04:24 | 显示全部楼层
OK,这是我找到的代码,还是蝗虫提供的


  1. rem 随机的,不停地变换桌面背景
  2. cd /d %~dp0.
  3. @echo off&setlocal enabledelayedexpansion
  4. if not "%1"=="h" mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",vbhide)(window.close)&exit
  5. set "bmp="%USERPROFILE%\Local Settings\Application Data\Microsoft\Wallpaper1.bmp""
  6. if not exist delay.vbs echo wscript.sleep 50000>delay.vbs
  7. set ADD=reg add "HKEY_CURRENT_USER\Control Panel\Desktop"
  8. (
  9. %ADD% /v TileWallpaper /d "0" /f
  10. %ADD% /v WallpaperStyle /d "3" /f
  11. )>nul 2>nul
  12. :start
  13. set "n="
  14. for /f %%i in ('dir/b *.bmp') do set/a n+=1
  15. :+REN标签会以001.bmp的形式自动重命名当前目录下的*.bmp位图文件。
  16. :+但如果原文件名中带有半角叹号“!”会出错,目前还没想到解决办法。
  17. :+所以在下载保存图片的时候请自己注意一下图片名字是否还有“!”,有则删掉再保存。
  18. :REN
  19. set "ver="
  20. for /f "delims=" %%i in ('dir /b *.bmp') do (
  21. set /a ver+=1&set "name=0000000!ver!.bmp"&set "name=!name:~-7!"
  22. if /i "%%i" neq "!name!" (
  23. if exist "!name!" (ren "!name!" "TMP_!random!.bmp"&ren "%%i" "!name!"&goto REN) else ren "%%i" "!name!"
  24. ))
  25. %ADD% /v Wallpaper /d %bmp% /f
  26. set/a "a=%random%%%%n%+1"
  27. set "a=000%a%"&set "b=!a:~-3!"
  28. for %%i in (%x%) do (if "%b%" equ "%%i" goto start)
  29. set/a m+=1
  30. :+下面这个10是控制随机更换的10张图片内不会重复。可以自行设置。
  31. :+不能大于图片总数减1。如共50张图片则最大只能设成49。
  32. if %m% gtr 10 (
  33. set "x=%b% %x:~0,-4%"
  34. )else set "x=%b% %x%"
  35. copy /y "%b%.bmp" %bmp%>nul 2>nul
  36. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  37. delay.vbs
  38. goto start
复制代码
发表于 2011-10-13 03:38:41 | 显示全部楼层
如果能用批处理调用某个图片处理软件自动把图片转换成真正的BMP格式就实现全自动换壁纸了

可惜找不到。
发表于 2011-10-13 09:31:06 | 显示全部楼层
回复 9# a262615704


批处理如何把jpg格式的图片设置为桌面背景?
http://bbs.bathome.net/viewthread.php?tid=3345#pid21158
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 03:26 , Processed in 0.021746 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表