chwp.ini 是chwp.cmd的配置文件 两个文件需要在同一目录下
chwp.ini 里面的 $wpdir 字段 决定了 需要更换壁纸的目录
需要更换壁纸的格式必须为jpg 名字必须为数字累加 如1.jpg 2.jpg 3.jpg.........
因为此脚本需要用到第三方工具 convert.exe 将jpg 转换为bmp
所以 $convert 字段决定 convert.exe 的位置和名字
convert.exe 的下载地址: http://download.youkuaiyun.com/source/990688
注:此脚本在WindowsXP 和Windows Server 2003 下测试成功.
----chwp.ini------
[change Wallpaper]
$interval=1
# 壁纸更换的时间间隔, 单位为分钟.$wpdir= ./Wallpaper
# 壁纸存放根目录$method=left
# 壁纸更换模式: left 正向 right 反向 random 随机$imgtype=jpg
# 壁纸文件类型$convert=img_convert.exe
# convert.exe 命令行图片处理工具的位置
# 因为跟windows一个命令行工具重名,建议改名,如: img_convert.exe
# 下载地址: http://download.youkuaiyun.com/source/990688
----chwp.cmd----
@echo off
::ChWallpaper
set config=%~dpn0.ini
cd /d %~dp0
for /f "eol=# tokens=1,2 delims==" %%a in ('findstr /i "/<$.*=" "%config%"') do (set %%a=%%b)
for %%a in ("%$wpdir%/*.%$imgtype%") do (set/a total+=1)
call :picknum "%$method%" "%total%" "%~1"
call :chwp "%$wpdir%/%picknum%.%$imgtype%"
goto :eof
::function picknum(method,total,current){
:picknum
set/a cur=0
set/a cur=%~3 2>nul
if %cur% lss 0 (set/a cur=0)
if %cur% gtr %~2 (set/a cur=%~2)
if /i %~1 equ left (if %cur% equ %~2 (set/a picknum=1) else (set/a picknum=%cur%+1)&goto :eof)
if /i %~1 equ right (if %cur% leq 1 (set/a picknum=%~2) else ( set/a picknum=%cur%-1)&goto :eof)
if /i %~1 equ random goto :rand
goto :eof
:rand
set/a rand=%random%%%%~2+1
if %cur% equ %rand% (goto :rand) else (set picknum=%rand%&goto :eof)
::}
::function chwp(wallpaper){
:chwp
for /f "eol=! tokens=1-3 delims= " %%a in ('reg query "HKEY_CURRENT_USER/Control Panel/Desktop" /v Wallpaper ^| findstr "Wallpaper"') do (set wppath=%%c)
%$convert% "%~f1" "%wppath%">nul
reg add "HKEY_CURRENT_USER/Control Panel/Desktop" /v ConvertedWallpaper /d "%~f1" /f>nul
gpupdate /force>nul
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
goto :eof
::}