中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [原创]壁纸自动换批处理版 上一主题 | 下一主题
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『楼 主』:  [原创]壁纸自动换批处理版

支持JPG和BMP图片格式,支持自动定时更换和手动(桌面快捷方式)打开更换。

这里下载:http://upload.cn-dos.net/img/480.rar

2008-5-28 13:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  楼主怎么不喜欢贴原码:

未经充许,贴出楼主的原码,还请原谅:
@echo off

color 0a
title 自动壁纸更换器
echo.&echo            自动壁纸更换器 by:clamber QQ:282959030 CMD@XP 2008/05/27
echo    ────────────────────────────────────


net start | find /i "Scheduler" >nul 2>nul
If %Errorlevel% GTR 0 sc config schedule start= auto >nul 2>nul&&net start sched
ule >nul 2>nul
if not exist "%ProgramFiles%\autowallpaper" mkdir "%ProgramFiles%\autowallpaper"
>nul 2>nul
if not exist wiaaut.dll echo.&echo  缺少"wiaaut.dll",程序可能不可用,仍然继续请按
任意键.&pause>nul
move/y wiaaut.dll %windir%\wiaaut.dll>nul 2>nul
regsvr32 /s %windir%\wiaaut.dll>nul

echo.
echo  请输入自动更换壁纸文件夹路径,可以直接拖入壁纸文件夹。卸载请输入[ U ]
:first
echo.&set/p picpath=  -^>
if "%picpath:~3,1%"=="\" set picpath=%picpath:~1,-1%
if /i "%picpath%"=="u" (
   regsvr32 /u /s wiaaut.dll
   del/q/f %windir%\wiaaut.dll>nul 2>nul
   rd/s/q "%ProgramFiles%\autowallpaper">nul 2>nul
   schtasks /delete /tn "wallpaper" /f >nul 2>nul
   del/q/f "%USERPROFILE%\桌面\更换壁纸.url">nul 2>nul
   echo  已卸载壁纸自动更换! 按任意键退出...&pause>nul&exit
   ) else (
   if not exist "%picpath%" echo  路径错误!&goto first
)

if not exist "%picpath%\*.jpg" if not exist "%picpath%\*.bmp" echo  没有图片文件
!&goto first

echo.&echo  取值范围:[0-1439]分钟,[0]为只在开机时更换壁纸。&echo.
set/p settimes= 请设置更换壁纸周期^(默认为0^):
set/a jtime=1439-%settimes%

if %jtime% EQU 1439 (
   schtasks /delete /tn "wallpaper" /f>nul 2>nul
   schtasks /create /sc onstart /tn "wallpaper" /ru system /tr """"C:\Program Fi
les\autowallpaper\wallpaper.bat"""">nul 2>nul
   ) else (
   schtasks /delete /tn "wallpaper" /f>nul 2>nul
   schtasks /create /sc minute /mo %settimes% /st 00:00:30 /tn "wallpaper" /ru s
ystem /tr """"C:\Program Files\autowallpaper\wallpaper.bat"""">nul 2>nul
)

::创建快捷方式
if not exist "%USERPROFILE%\桌面\更换壁纸.url" (
>"%USERPROFILE%\桌面\更换壁纸.url" echo [InternetShortcut]
>>"%USERPROFILE%\桌面\更换壁纸.url" echo URL="%ProgramFiles%\autowallpaper\wallp
aper.bat"
>>"%USERPROFILE%\桌面\更换壁纸.url" echo IconIndex=130
>>"%USERPROFILE%\桌面\更换壁纸.url" echo IconFile=%windir%\system32\SHELL32.dll
>>"%USERPROFILE%\桌面\更换壁纸.url" echo Modified=F00BA4B792A0C80151
attrib +r "%USERPROFILE%\桌面\更换壁纸.url"
)

(echo ^@echo off
echo title 请稍候...
echo mode con lines=3 cols=20
echo echo.^&echo  正在更换新壁纸……
echo set cdnj=%%~dp0
echo cd/d "%picpath%"
echo :begin
echo if exist wallpaper.bmp del/q/f wallpaper.bmp
echo for /f "tokens=1 delims=" %%%%i in ^('dir/b/d *.jpg *.bmp'^) do ^(
echo     set wallpaper=%%%%i
echo     call :huanbz
echo ^)
echo del/q/f "%%cdnj%%wallpaper.ini"
echo goto :begin
echo.
echo :huanbz
echo find /i "%%wallpaper%%" "%%cdnj%%wallpaper.ini"^>nul 2^>nul
echo if ^%%errorlevel^%% EQU 1 (
echo    echo %%wallpaper%%^>^>"%%cdnj%%wallpaper.ini"
echo    mshta "javascript:var i=new ActiveXObject('WIA.ImageFile');i.LoadFile('%
%wallpaper%%');var x=new ActiveXObject('WIA.ImageProcess');x.Filters.Add('{42A6E
907-1D2F-4b38-AC50-31ADBE2AB3C2}');with(x.Filters(1)){Properties('FormatID').Val
ue='{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}';Properties('Quality').Value=100;}x.A
pply(i).SaveFile('wallpaper.bmp');window.close();"
echo    reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v TileWallpaper /d "0
" /f^>nul 2^>nul
echo    reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d "%%cd%
%\wallpaper.bmp" /f^>nul 2^>nul
echo    reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v WallpaperStyle /d "
2" /f^>nul 2^>nul
echo    RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
echo    call :attime
echo    exit
echo ^)
echo goto :eof
echo.
echo :attime
echo Set/a hour=%%time:~0,2%%+0
echo Set/a minute=1%%time:~3,2%%-100+1
echo If %%minute%% GEQ 60 Set/a minute=%%minute%%-60 ^& Set/a hour=%%hour%%+1
echo If %%hour%% GEQ 24 Set/a hour=%%hour%%-24
echo at %%hour%%:%%minute%% /interactive RunDll32.exe USER32.DLL,UpdatePerUserSy
stemParameters ^>nul 2^>nul
echo exit)>"%ProgramFiles%\autowallpaper\wallpaper.bat"

echo.&echo  已完成!&ping -n 3 127.1>nul&exit




批处理之家新域名:www.bathome.net
2008-5-28 15:24
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『第 3 楼』:  

呵呵,需要一个DLL文件的,如果只用这个单纯的批处理,可能会出现图片转换的问题。

2008-5-29 14:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tireless
银牌会员





积分 2025
发帖 1122
注册 2007-9-5
状态 离线
『第 4 楼』:  

代码经过了加密?

2008-7-11 15:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

汗水,2楼不是给出源码了么?



2008-7-11 17:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: