找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 394|回复: 27

[分享] 手搓分享一个随心换壁纸脚本

  [复制链接]
发表于 前天 15:41 | 显示全部楼层 |阅读模式
整天对着系统一个背景图,感觉有点闷心了。调试了一个随机切换壁纸的脚本,添加到右键菜单,随时可换一换壁纸,就当换换心情。
脚本支持双系统环境PE_PC端。绿色脚本,支持任意路径文件夹。两个脚本须同目录。支持四种图片格式,图片命名随意。指定图片路径是%SystemRoot%\Web\Wallpaper\Windows也就是系统盘windows文件夹的web文件夹……,这个也可以自定修改。文件夹内图片至少两张,否则脚本不生效果if !num! lss 2 exit。
两个源脚本打包: 随心换壁纸.7z (848 Bytes, 下载次数: 25)

双击加载右键菜单bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "SJ=%~dp0SJBZ.bat"
  4. set "TmpReg=menu.reg"
  5. echo Windows Registry Editor Version 5.00 >!TmpReg!
  6. echo.>>!TmpReg!
  7. echo [HKEY_CLASSES_ROOT\DesktopBackground\Shell\SwitchTheme]>>!TmpReg!
  8. echo @="随心换壁纸">>!TmpReg!
  9. echo "Icon"="shell32.dll,176">>!TmpReg!
  10. echo "Position"="Bottom">>!TmpReg!
  11. echo.>>!TmpReg!
  12. echo [HKEY_CLASSES_ROOT\DesktopBackground\Shell\SwitchTheme\command]>>!TmpReg!
  13. echo @="cmd /c \"!SJ:\=\\!\"">>!TmpReg!
  14. reg import !TmpReg!
  15. del /f /q !TmpReg!
  16. exit
复制代码

右键调用的SJBZ.bat

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "WALL_DIR=%SystemRoot%\Web\Wallpaper\Windows"
  4. set num=0
  5. for %%i in ("%WALL_DIR%\*.jpg" "%WALL_DIR%\*.jpeg" "%WALL_DIR%\*.png" "%WALL_DIR%\*.bmp") do (
  6.     set /a num+=1
  7.     set "pic[!num!]=%%i"
  8. )
  9. if !num! lss 2 exit
  10. set /a rnd=!random!%%(!num!-1)+2
  11. reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "!pic[%rnd%]!" /f >nul
  12. reg add "HKCU\Control Panel\Desktop" /v TileWallpaper /t REG_SZ /d "0" /f >nul
  13. reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /t REG_SZ /d "10" /f >nul
  14. if /i "%systemdrive%"=="X:" (
  15.     PECMD KILL EXPLORER.EXE
  16. ) else (
  17. taskkill /f /im explorer.exe & start explorer
  18. )
  19. exit
复制代码

可以挂载固化到PE,挂载项是software大项,我挂载时命名是PE10,保存为随心换壁纸挂载.reg
  1. Windows Registry Editor Version 5.00

  2. [HKEY_LOCAL_MACHINE\PE10\Classes\DesktopBackground\Shell\SwitchTheme]
  3. @="随心换壁纸"
  4. "Icon"="%SystemRoot%\\System32\\shell32.dll,176"
  5. "Position"="Bottom"

  6. [HKEY_LOCAL_MACHINE\PE10\Classes\DesktopBackground\Shell\SwitchTheme\command]
  7. @="SJBZ.bat"
复制代码
调用的SJBZ.bat直接放到系统system32根目录,省了变量。

评分

参与人数 2无忧币 +10 收起 理由
jxpxwgh + 5 很给力!
cuicongyuan + 5 赞一个!

查看全部评分

 楼主| 发表于 前天 15:45 | 显示全部楼层
本帖最后由 忧心的启 于 2026-6-14 13:56 编辑

自坐首席。学到了,分页好好玩,估计能坑不少人——下一页有成品和图展(还是说一下为好)

2026.06.14,专门调试一个只在PC端专用的幻灯片效果的随心切,纯DOS,不依赖PS。理论是支持PE的,但有些PE精减了一些命令,不是很兼容。(写得拉跨,大伙要是有更理想的脚本可分享上来一起享用)

修改之前的脚本,增加多一个脚本SlideRun.bat给SJBZ.bat调用。(因切换壁纸会刷新桌面,所有打开的文件夹窗口会被关闭,建议只在闲时运行

逻辑是:通过运行SJBZ.bat设置参数调用SlideRun.bat实现自动切换壁纸,如果未关闭正在进行的切换,只要再次运行SJBZ.bat就能重新设置运行。当然不设置循环参数时,窗口5秒后会换一次壁纸并退出。正常运行时可手动最小化提示CMD窗口到任务栏。通过这次实践,发现有些系统不能正常运行的,多数是权限不够引起的,可自行解决提升到管理员运行SJBZ.bat

下面是SJBZ.bat和SlideRun.bat的源码,双击加载右键菜单.bat不变,只修改一个快捷图标“imageres.dll,145”
SJBZ.bat
  1. @echo off&PUSHD %~DP0 &TITLE 随心换壁纸时间设置
  2. mode con cols=42 lines=9
  3. color 2E
  4. setlocal enabledelayedexpansion
  5. set "PID_FILE=%~dp0con_pid.tmp"

  6. if exist "%PID_FILE%" (
  7.     set /p OldPID=<"%PID_FILE%"
  8.     taskkill /f /pid !OldPID! >nul 2>&1
  9. )

  10. echo 0 > "%PID_FILE%"

  11. for /f "tokens=2" %%a in ('tasklist /v ^| findstr "随心换壁纸时间设置"') do (
  12.     for /f "tokens=2" %%b in ('tasklist /v ^| findstr "conhost.exe"') do (
  13.         echo %%b > "%PID_FILE%"
  14.     )
  15. )

  16. :Menu
  17. cls
  18. echo    =========壁纸幻灯片控制台 ========
  19. echo.
  20. echo       1. 启动幻灯片 10秒切换一张
  21. echo       2. 启动幻灯片 30秒切换一张
  22. echo       3. 启动幻灯片 60秒切换一张
  23. echo       4. 启动幻灯片300秒切换一张
  24. echo    ==================================
  25. echo   5秒内未输入将自动执行单次随机换壁纸
  26. choice /c 12345 /t 5 /d 5 /m "请输入数字选择功能:"
  27. set opt=%errorlevel%

  28. if "!opt!"=="1" (
  29.     call :StartSlide 10
  30. ) else if "!opt!"=="2" (
  31.     call :StartSlide 30
  32. ) else if "!opt!"=="3" (
  33.     call :StartSlide 60
  34. ) else if "!opt!"=="4" (
  35.     call :StartSlide 300
  36. )
  37. goto SingleWall
  38. exit

  39. :StartSlide
  40. echo > "%~dp0slide.tmp"
  41. call "%~dp0SlideRun.bat" %1
  42. exit

  43. :SingleWall
  44. set num=0
  45. for %%i in ("%WALL_DIR%\*.jpg" "%WALL_DIR%\*.jpeg" "%WALL_DIR%\*.png" "%WALL_DIR%\*.bmp") do (
  46.     set /a num+=1
  47.     set "pic[!num!]=%%i"
  48. )
  49. for /f "skip=2 tokens=1,2*" %%a in ('reg query "HKCU\Control Panel\Desktop\CachedFiles" 2^>nul') do (
  50.     if "%%b"=="REG_SZ" (
  51.         set /a num+=1
  52.         set "pic[!num!]=%%i"
  53.     )
  54. )
  55. if !num! lss 2 exit
  56. set /a rnd=!random!%%(!num!-1)+2
  57. set "SelPic=!pic[%rnd%]!"
  58. reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "!SelPic!" /f >nul
  59. reg add "HKCU\Control Panel\Desktop" /v TileWallpaper /t REG_SZ /d "0" /f >nul
  60. reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /t REG_SZ /d "10" /f >nul
  61. timeout /t 1 /nobreak >nul
  62. taskkill /f /im explorer.exe >nul 2>&1 & start explorer
  63. exit
复制代码
SlideRun.bat
  1. @echo off&PUSHD %~DP0 &TITLE 提示说明
  2. color 1F
  3. mode con cols=36 lines=8
  4. setlocal enabledelayedexpansion
  5. set "DelaySec=%~1"
  6. set "WALL_DIR=%SystemRoot%\Web\Wallpaper\Windows"
  7. :LoopShowTip
  8. cls
  9. echo    ==============================
  10. echo     正在以 !DelaySec! 秒自动切换壁纸
  11. echo     切换时会关闭打开的文件夹窗口
  12. echo     建议在非工作状态下才使用
  13. echo     关闭本窗口可停止自动切换壁纸
  14. echo     请手动最小化cmd窗口到任务栏
  15. echo    ==============================
  16. set num=0
  17. for %%i in ("%WALL_DIR%\*.jpg" "%WALL_DIR%\*.jpeg" "%WALL_DIR%\*.png" "%WALL_DIR%\*.bmp") do (
  18.     set /a num+=1
  19.     set "pic[!num!]=%%i"
  20. )
  21. for /f "skip=2 tokens=1,2*" %%a in ('reg query "HKCU\Control Panel\Desktop\CachedFiles" 2^>nul') do (
  22.     if "%%b"=="REG_SZ" (
  23.         set /a num+=1
  24.         set "pic[!num!]=%%c"
  25.     )
  26. )
  27. if !num! lss 2 goto ExitSlide
  28. set /a rnd=!random!%%(!num!-1)+2
  29. set "SelPic=!pic[%rnd%]!"
  30. reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "!SelPic!" /f >nul
  31. reg add "HKCU\Control Panel\Desktop" /v TileWallpaper /t REG_SZ /d "0" /f >nul
  32. reg add "HKCU\Control Panel\Desktop" /v WallpaperStyle /t REG_SZ /d "10" /f >nul
  33. timeout /t 1 /nobreak >nul
  34. taskkill /f /im explorer.exe >nul 2>&1 & start explorer
  35. timeout /t !DelaySec! /nobreak >nul
  36. goto LoopShowTip
  37. exit
复制代码
用单文件打包一个现成的,用7z打开,可以换里面的壁纸。双击释放安装,桌面生成一个快捷方式“随心换壁纸幻灯片”可以通过快捷方式启动切换壁纸也可通过右键运行切换。
PC专用随心换壁纸幻灯片效果.exe (3.39 MB, 下载次数: 1)
GIF演示:


点评

唉,还是少了点测试,在较新的版本系统里,完全换不动壁纸啊。后面看看怎么改吧,要不就算了。  发表于 半小时前
回复

使用道具 举报

发表于 前天 15:52 | 显示全部楼层
换一下壁纸换一下心情,感谢分享!
回复

使用道具 举报

发表于 前天 16:05 | 显示全部楼层
回复

使用道具 举报

发表于 前天 16:25 | 显示全部楼层
好久没换壁纸了
回复

使用道具 举报

发表于 前天 17:15 | 显示全部楼层
同感,好久没换壁纸了。
回复

使用道具 举报

发表于 前天 18:31 来自手机 | 显示全部楼层
谢谢老大手搓分享!
回复

使用道具 举报

发表于 前天 18:34 | 显示全部楼层
挺不错的
回复

使用道具 举报

发表于 前天 18:50 | 显示全部楼层
自娱自乐专用
回复

使用道具 举报

发表于 前天 19:38 | 显示全部楼层
换一下壁纸换一下心情,感谢分享!
回复

使用道具 举报

发表于 前天 19:38 | 显示全部楼层
换一下壁纸换一下心情,感谢分享!
回复

使用道具 举报

发表于 前天 19:45 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 前天 20:08 | 显示全部楼层
支持原创,谢谢分享!
回复

使用道具 举报

发表于 前天 21:46 | 显示全部楼层
我也想随心换电脑壁纸啊,这个脚本正合用
回复

使用道具 举报

发表于 昨天 07:41 | 显示全部楼层
回复

使用道具 举报

发表于 昨天 08:07 | 显示全部楼层
多谢老板,收藏一份
回复

使用道具 举报

发表于 昨天 09:45 | 显示全部楼层
请问楼主大神,为什么我的不换壁纸呀?我是下载 随心换壁纸.exe,双击,再桌面右键换壁纸,没换成壁纸。
下载 随心换壁纸.7z,也没成功换到壁纸。win 10 系统。

点评

各人的系统环境复杂有个别不支持得要专门分析才行。系统是什么版本?是原版安装的还是精简系统?你看看这个路径里面有没有释放的文件C:\Windows\Web\Wallpaper\Windows如果有文件,再看看注册表值,位置:HKEY_CLASS  详情 回复 发表于 昨天 11:35
回复

使用道具 举报

发表于 昨天 11:02 | 显示全部楼层
多谢老板感谢分享
回复

使用道具 举报

 楼主| 发表于 昨天 11:35 | 显示全部楼层
jxpxwgh 发表于 2026-6-13 09:45
请问楼主大神,为什么我的不换壁纸呀?我是下载 随心换壁纸.exe,双击,再桌面右键换壁纸,没换成壁纸。
...

各人的系统环境复杂有个别不支持得要专门分析才行。系统是什么版本?是原版安装的还是精简系统?你看看这个路径里面有没有释放的文件C:\Windows\Web\Wallpaper\Windows如果有文件,再看看注册表值,位置:HKEY_CLASSES_ROOT\DesktopBackground\Shell\SwitchTheme\command看看这个值是不是cmd /c "C:\Windows\Web\Wallpaper\Windows\随心换壁纸\SJBZ.bat",如果都正常应该没什么问题的。

点评

我找不到你这个精简系统的版本,太老了,现在初心最早有下载的只在win10的21H。我在2楼做了一版PC专用的,发现有些系统应该是权限不够造成不能运行调用的SJBZ.bat。如果还要弄下去,如果摸索到方法了可分享分享   发表于 1 小时前
文件已经成功复制了,注册表也没问题,就是不换壁纸。 我用的系统是不忘初心的win10 20H2.19042.870 无更新精简专业版。我觉得是我的操作系统的问题,可能精简掉了某些运行特定批处理的必要文件。这个批处理无法使用   发表于 昨天 13:20
回复

使用道具 举报

发表于 昨天 11:57 | 显示全部楼层
换一下壁纸换一下心情,感谢分享!
回复

使用道具 举报

发表于 昨天 13:52 | 显示全部楼层
老大,您好!
可否加个 幻灯片播放(5秒 或者 10秒 或者 30秒 或者 60秒)——加个 播放-暂停 按钮。

点评

研究了一下,在2#楼发出来了,不懂是不是你想要的这个效果。  详情 回复 发表于 1 小时前
回复

使用道具 举报

 楼主| 发表于 1 小时前 | 显示全部楼层
cuicongyuan 发表于 2026-6-13 13:52
老大,您好!
可否加个 幻灯片播放(5秒 或者 10秒 或者 30秒 或者 60秒)——加个 播放-暂停 按钮。 ...

研究了一下,在2#楼发出来了,不懂是不是你想要的这个效果。

点评

谢谢老大! 我下载看看  详情 回复 发表于 1 小时前
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
忧心的启 发表于 2026-6-14 14:00
研究了一下,在2#楼发出来了,不懂是不是你想要的这个效果。

谢谢老大!
我下载看看

点评

我这边在比较新的系统版本运行不起来,只以低版本的极限系统测试成功,你那边估计也不行的,不用折腾了。  详情 回复 发表于 28 分钟前
回复

使用道具 举报

 楼主| 发表于 28 分钟前 | 显示全部楼层
cuicongyuan 发表于 2026-6-14 14:05
谢谢老大!
我下载看看

我这边在比较新的系统版本运行不起来,只以低版本的极限系统测试成功,你那边估计也不行的,不用折腾了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-6-14 15:58

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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