Board logo

标题: [文件操作] 批处理如何实现随机更换桌面壁纸/背景? [打印本页]

作者: superwc001    时间: 2016-3-25 09:00     标题: 批处理如何实现随机更换桌面壁纸/背景?

本帖最后由 pcl_test 于 2016-7-28 01:06 编辑

有一个文件夹里面放着N张BMP格式的图片。想做一个批处理 运行后会随机把文件夹里的图片设置成壁纸。
点击后更改就可以,不需要每隔多久自动修改。
谢谢大神
作者: happy886rr    时间: 2016-3-25 13:02

本帖最后由 happy886rr 于 2016-3-28 16:49 编辑

回复 1# superwc001
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (*.bmp) do (set /a N+=1)
  4. for %%i in (*.bmp) do (
  5. set /a RN=!random!%%!N!+1
  6. if not defined #!RN! (set "#!RN!=%%i")
  7. )
  8. for /f "tokens=2 delims==" %%i in ('set #') do (
  9. REG ADD "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d "!CD!\%%i" /f
  10. echo %%i
  11. set /a i+=1
  12. if !i! equ 1 (goto end)
  13. )
  14. :end
  15. RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
  16. set /p =执行完毕!
复制代码

作者: superwc001    时间: 2016-3-25 13:44

回复 2# happy886rr


    不好用呀。
作者: superwc001    时间: 2016-3-25 13:45

此时不该有(*.bmp)
作者: happy886rr    时间: 2016-3-25 13:49

本帖最后由 happy886rr 于 2016-3-25 14:44 编辑

回复 4# superwc001
代码少写了一个in ,已改,在原楼
作者: superwc001    时间: 2016-3-28 14:36

回复 5# happy886rr


    谢谢帮忙,非常感谢,但是测试XP下一点问题没有,WIN7下,双击批处理后有时候能改桌面,有时候没反应,批处理已经显示了BMP文件名,但是没有更改。但是有时候好用。点击10次能有2 3次成功。是不是我系统问题?系统是WIN7 专业版的SP1
作者: happy886rr    时间: 2016-3-28 14:58

回复 6# superwc001
说对了,就是系统问题,xp支持那个操作。到了win7就有一个延迟,不能立刻刷新背景。
作者: superwc001    时间: 2016-3-28 15:50

回复 7# happy886rr


    有办法解决吗??
作者: superwc001    时间: 2016-3-29 20:00

大神们 有帮我解决下的吗?
作者: pcl_test    时间: 2016-7-28 01:04

本帖最后由 pcl_test 于 2016-7-28 01:08 编辑

回复 9# superwc001

先运行这个帖子3楼的代码,生成$ChangeWallpaper.exe,
http://www.bathome.net/redirect. ... 7073&ptid=40853
然后在把下面批处理、exe文件和bmp图片放一起,执行批处理
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (*.bmp) do set /a n+=1&set "#!n!=%%i"
  3. set /a r=!random!%%%n%+1
  4. $ChangeWallpaper.exe "!#%r%!"
  5. pause
复制代码





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