Board logo

标题: 更换桌面背景 [打印本页]

作者: chainliq     时间: 2006-11-22 12:31    标题: 更换桌面背景

请问用批处理如何实现更换桌面背景呀!
作者: redtek     时间: 2006-11-22 22:08
) 桌面背景文件一般都默认是 .BMP 图像格式的文件,它默认存在于 %SystemRoot%  目录下。

) 查找注册表:

  在windows桌面上设置一个背景,记下它的文件名。

  如果不知道桌面设置在注册表的什么位置该怎么办?
  (进入 Regedit 编辑注册表,查找你刚才找到的那个文件名,找到的位置就是桌面的设置部分,这东东的位置用不着背)

  找到之后你就知道了它的位置。

) 知道了它的位置就可以用 Reg.exe 这个工具来在批处理里修改它的值了。
  如何修改?
  REG.EXE  /? 看帮助:)
  论坛“搜索”功能里有更多的关于操作注册表的例子:)


) 以上就是在不知道如何用批处理更换桌面背景、也不知道在注册表的什么位置、不知道Reg.exe怎么用的情况下,
  来完成这项任务的 “原理”。


注:以上我已经在XP环境下做过实验了,完全可以。
  所以,chainliq兄可以参考这个思路来找出方法~:)
作者: chainliq     时间: 2006-11-22 22:12
呵呵,找出来啦,可我导入注册表的时候,要注销一次它才生效啊,有没有办法让它在不注销的情况下生效呀!就是说导入后能立即生效!
作者: redtek     时间: 2006-11-22 22:15
上次论坛看到一个贴子,立即刷新桌面的方法。
那位作者还是一贴多投记得,哈哈……
我帮你找一下(我就找5分钟啊,找不着我就不找了,哈哈……),你也找一下:)
作者: redtek     时间: 2006-11-22 22:19
看一下这个贴子,有关于刷新的内容:)

http://www.cn-dos.net/forum/view ... =%E5%88%B7%E6%96%B0
请问用Rundll32如何“刷新桌面”和重新加载“explorer.exe”?
作者: 9527     时间: 2006-11-22 22:47
其实LZ也可以尝试用第三方工具来试试

http://www.cn-dos.net/forum/view ... p;highlight=%2B9527
作者: zouzhxi     时间: 2006-11-23 00:11
那我就发一个微软出品的工具吧.

微软出品“桌面壁纸自动换”



壁纸自动换(Slide Show) 是 Microsoft 出品的一个桌面增强工具,安装后它会集成于“显示属性”中,你可以指定任意一个包含有你要作为桌面背景图片的文件夹为壁纸自动换的图片目录,在“频率”选项中可以设定自动更新壁纸的时间,从一秒到一小时或者一个月,以及每次在启动 Windows 系统时是否自动更换新壁纸全由你做主。当你坐在电脑前学习工作时,由壁纸自动换给你带来的一张张崭新壁纸一定会带给你轻松愉快的好心情。
附件 1: 微软出品“桌面壁纸自动换”.rar (2006-11-23 00:11, 74.37 K, 下载附件所需积分 1点 ,下载次数: 201)

作者: eech     时间: 2006-11-23 01:34
" 微软出品“桌面壁纸自动换"

这个软件不好删除.我用过一次.为了删除.在网上查了很久`````````
作者: redtek     时间: 2006-11-23 01:39
但是,既然能实现用批处理做出来更换桌面背景的代码,为什么还要这么喜欢第三方的工具呢?

估计这会儿chainliq兄的用批处理实现更改桌面背景的代码应该出来了,
俺个人建议批处理专业论坛应该鼓励用批处理实现想法~:)

chainliq兄如果做出来了传上来给你加高分~:)

[ Last edited by redtek on 2006-11-22 at 12:43 PM ]
作者: zouzhxi     时间: 2006-11-23 02:46
没有呀...
微软出品“桌面壁纸自动换”
只有俩文件,,,

一个是bgswitch.dll
一个是bgswitch.exe
文件都在system32目录下...

还有在注册表里的值只有一个
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"bgswitch"="C:\\WINDOWS\\system32\\bgswitch.exe"

[ Last edited by zouzhxi on 2006-11-23 at 02:49 AM ]
作者: electronixtar     时间: 2006-11-23 07:06
好东西!可惜我用的是 Ubuntu~~~

[ Last edited by electronixtar on 2006-11-23 at 07:10 AM ]
作者: vlq5299     时间: 2006-12-5 02:22
删除 桌面壁纸自动换
1.注销组件:开始>>运行>>输入regsvr32.exe /u c:windowssystem32bgswitch.dll
2.删除文件:c:windowssystem32下面的bgswitch.exe和bgswitch.dll
3.清理注册表:删除注册表[HKEY_CURRENT_USERSoftwareMicrosoftWindows CurrentVersionRun] "bgswitch"="C:\WINDOWS\system32\bgswitch.exe"
搞定!!!
作者: mozhe     时间: 2007-4-27 18:05
代码
color 0a
title 正在更换桌面 ...
echo 正在添加注册表项目...
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d \\192.168.1.253\网管存档区$\飘\图片\死猫副本.bmp /f
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
cls
作者: sdzztz     时间: 2007-4-29 09:46    标题: xadzxd

AXzx
作者: qq43142691     时间: 2007-5-4 09:47
@echo off
title 按照星期或指定节日自动更改壁纸---P处理---by 彬(QQ:43142691)  2007-05-04  
::【 获取当前日期文件 (today.ini) 】
date /t >today.ini

::开始执行相应命令::::::::::::::::::::::::::::::::
find "星期一" today.ini && set 壁纸文件名=星期壁纸\1
find "星期二" today.ini && set 壁纸文件名=星期壁纸\2
find "星期三" today.ini && set 壁纸文件名=星期壁纸\3
find "星期四" today.ini && set 壁纸文件名=星期壁纸\4
find "星期五" today.ini && set 壁纸文件名=星期壁纸\5
find "星期六" today.ini && set 壁纸文件名=星期壁纸\6
find "星期日" today.ini && set 壁纸文件名=星期壁纸\7
::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::
:: 【服务器设置(是否显示特殊节日)请在服务器处设置】请勿修改.否则出错
find "不启用" \\10.0.0.247\login$\彬\配置文件.ini && goto autoBZ
::::::::::::::::::::::::::::::::::::::::::::::::::
:: 【特殊节日表一定要填在这里。否则按星期执行(节日格式为 00-00 】
find "01-01" today.ini && set 壁纸文件名=节日壁纸\01
find "03-08" today.ini && set 壁纸文件名=节日壁纸\38
find "05-01" today.ini && set 壁纸文件名=节日壁纸\51
find "05-04" today.ini && set 壁纸文件名=节日壁纸\54
find "06-01" today.ini && set 壁纸文件名=节日壁纸\61
:::::::::::::::最终执行的命令::::::::::::::::::::::
:autoBZ
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d \\10.0.0.247\login$\彬\%壁纸文件名%.bmp /f
gpupdate /force
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
del today.ini
exit
作者: qq43142691     时间: 2007-6-17 09:26
没有人顶啊
作者: coolclack     时间: 2007-6-24 12:17


  Quote:
Originally posted by qq43142691 at 2007-5-4 09:47 AM:
@echo off
title 按照星期或指定节日自动更改壁纸---P处理---by 彬(QQ:43142691)  2007-05-04  
::【 获取当前日期文件 (today.ini) 】
date /t >today.ini

::开始执行 ...

这个批处理放什么位置
还有星期壁纸
作者: qq8533     时间: 2007-7-13 23:09
:lol::lol::lol:谢谢
作者: ndanyyz     时间: 2007-7-14 22:16
很有意思啊  我找的就是这个
作者: ndanyyz     时间: 2007-7-14 22:45
附件 1:  微软出品“桌面壁纸自动换”.rar

我也在找啊!!!
作者: 131200     时间: 2007-7-27 14:24
``
作者: lsp15888     时间: 2007-8-13 10:07


  Quote:
Originally posted by sdzztz at 2007-4-29 09:46 AM:
AXzx

测试完毕 不能更换壁纸
作者: qq43142691     时间: 2007-8-14 01:37
这个是 autoBZ.bat 的
@echo off&setlocal EnableDelayedExpansion
title 按照星期或指定节日自动更改壁纸---P处理---by 彬(QQ:43142691) %date%
::****************************************************************************
set 服务器路径=c:\2
set 时间服务器=10.0.0.247
::****************************************************************************
set y=%date:~0,-10%
set d=%date:~8,-4%
set 周=%date:~-3%
set 月=%date:~5,-7%
set 日=%date:~8,-3%
set 今天日期=today.ini
set n=0
set 时=%time:~0,2%
set 分=%time:~3,2%
set 秒=%time:~6,2%
if %时% GEQ 0 goto 凌晨
goto 下午
:凌晨
if %时% GEQ 5 goto 上午
set 现在时段=凌晨
goto 显示
:上午
if %时% GEQ 10 goto 中午
set 现在时段=上午
goto 显示
:中午
if %时% GEQ 14 goto 下午
set 现在时段=中午
goto 显示
:下午
if %时% GEQ 18 goto 晚上
set 现在时段=下午
goto 显示
:晚上
if %时% GEQ 0 goto 凌晨
set 现在时段=晚上
:显示
set 现在时间是=%现在时段%%时%点%分%分%秒%秒
set 今天的日期=%y%年%月%月%d%号%现在时间是%
::***********************************************************************
echo %月%%日% %周%>%今天日期%
find "①=不排除" %服务器路径%\排除机器.ini && goto 初始化
find "%computername%" %服务器路径%\配置文件.ini && goto 初始化
exit
:初始化
find "②=不随机" %服务器路径%\配置文件.ini && goto 跳过随机
set /a x=%random%%%100+1
set 壁纸文件名=跳过随机壁纸\%x%
goto 更换壁纸
:跳过随机
set /a n+=1
set 星期=壁纸文件名=星期壁纸
set 节日=壁纸文件名=节日壁纸
for /f "tokens=2" %%F in (%今天日期%) do set %星期%\%%F
find "③=不启用" %服务器路径%\配置文件.ini && goto 更换壁纸
for /f "tokens=1" %%i in (%今天日期%) do set %节日%\%%i
:更换壁纸
if %n% EQU 3 goto 完成
if not exist %服务器路径%\%壁纸文件名%.bmp goto 跳过随机
set regadd=reg add "HKCU\Control Panel\Desktop
%regadd%" /v TileWallpaper /d "0" /f
%regadd%" /v Wallpaper /d "%服务器路径%\%壁纸文件名%.bmp" /f
%regadd%" /v WallpaperStyle /d "2" /f
gpupdate /force
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
del %今天日期%
find "④=不提示" %服务器路径%\配置文件.ini && goto 完成
set 程序名=systempp.exe
set 系统地址=%windir%\system32\
set 信息停留时间=12

find "%computername%" %服务器路径%\配置文件.ini>%系统地址%\本机特征.ini
for /f "skip=2 tokens=2" %%k in (%系统地址%\本机特征.ini) do set 区间=%%k
goto %区间%
:主战区
set 区域=主战区
goto 完成区域
:游戏区
set 区域=游戏区
goto 完成区域
:视频区
set 区域=视频区
goto 完成区域
:休闲区
set 区域=休闲区
goto 完成区域
:卡座区
set 区域=卡座区
goto 完成区域
:无烟区
set 区域=无烟区
:完成区域
for /f %%a in ("%time:~0,-9%") do set 现在时间=%%a
if %现在时间% GEQ %信息停留时间% goto 3元 else
goto 2元
exit
::******************************************************
:2元
if %区间% NEQ 卡座区 goto 不贵的
set 费用=3元
goto 开始泡泡
:不贵的
set 费用=2元
goto 开始泡泡
::******************************************************
:3元
if %区间% NEQ 卡座区 goto 不贵
set 费用=3.5元
goto 开始泡泡
:不贵
set 费用=3元
::******************************************************
:开始泡泡
set xy=%区域%%computername%
set 标题=%今天的日期% 欢迎光临 XXX 网吧
set 提示内容=您是【%xy%】号客户机,现在收费:%费用%/小时
set 图标类型=3
if exist %系统地址%\%程序名% del %系统地址%\%程序名%
copy %服务器路径%\%程序名% %系统地址%\
start %系统地址%\%程序名% ;%系统地址%\ie.ico;;%标题%;;%提示内容%;;%图标类型%;;%信息停留时间%;
:完成
net time \\%时间服务器% /set /y
net use * /del /y
exit
下面是 配置文件.ini 的
这个是服务器端的配置文件,请放置服务器端
*****************************************************************
【这里设置是否指定计算机执行以下程序】 关键词【 不排除 】【 排除 】
①=不排除
*****************************************************************
【这里设置是否 随机 】 关键词【 不随机 】【 随机 】
是否显示特殊节日
②=不随机
*****************************************************************
【这里设置是否启用特殊节日】 关键词【 不启用 】【 启用 】
是否显示特殊节日
③=不启用
*****************************************************************
【这里设置是否启用特殊节日】 关键词【 不提示 】【 提示 】
是否显示特殊节日
④=不提示
*****************************************************************
下面开始是指定 计算机才更换壁纸的计算机名【一行一个计算机名】
*****************************************************************
计算机名 区间编号
A001 主战区
A002 主战区
A003 主战区
A004 主战区
A005 主战区
A006 主战区
A007 主战区
A008 主战区
A009 主战区
A010 主战区
附件 1: QQ截图未命名.jpg (2007-8-14 01:37, 4.21 K,下载次数: 18)



作者: loyalliang     时间: 2008-2-3 00:30
:P:P:P:P:P:P:P:P:P:P:P


顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: sxk50     时间: 2008-2-7 14:24
@echo off
color 0a
title 正在更换桌面
echo 正在添加注册表项目...
set regadd=reg add "HKEY_CURRENT_USER\Control Panel\Desktop
%regadd%" /v TileWallpaper /d "0" /f
%regadd%" /v Wallpaper /d "C:\WINDOWS\Web\Wallpaper\Windows Server 2003.bmp" /f
%regadd%" /v WallpaperStyle /d "2" /f
echo 正在更换桌面背景
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters

PS:把“C:\WINDOWS\Web\Wallpaper\Windows Server 2003.bmp”换成你的文件~必须要BMP格式
作者: edison     时间: 2008-3-23 19:06
设置的太复杂了.

这个东西还是用第三方软件实现比较好吧
作者: i3i4i5     时间: 2008-3-24 11:27    标题: 试试这个,担是我不知道服务器的路径怎么设,

::///////////////////////////////////桌面

rem 设置服务器图片路径[BMP图片的文件夹],只支持BMP格式[如果数量超过1000张,多出的图片将不被本脚本读取]
set 图片路径=\\cgo\pic$\1024768

rem 设置网络不通时,本地图片的路径[单个BMP图片的完整路径]
set 本地图片=E:\通用工具\web\文明城市.bmp

dir/b/s "%图片路径%\*.bmp" |find /i /n ".bmp" >"bmp.txt"
for %%i in (bmp.txt) do if %%~zi EQU 0 goto 更换
for /f "delims=[]" %%i in (bmp.txt) do @set Num1=%%i
if %Num1% LSS 10 (Set Num3=1) Else (if %Num1% LSS 100 (Set Num3=2) Else Set Num3=3)
:GetRandom
call set Num2=%%random:~-%Num3%%%
if %Num2% GTR %Num1% goto GetRandom
for /f "tokens=* delims=0" %%i in ("%Num2%") do set Num2=%%i
if "%Num2%" EQU "" set Num2=%Num1%
set bmppath=
for /f "tokens=1* delims=[]" %%i in (bmp.txt) do @if /i %%i==%Num2% set bmppath=%%j
del bmp.txt
:更换
if exist "%bmppath%" copy "%bmppath%" /y "%本地图片%"
if exist "%本地图片%" (set bmppath=%本地图片%) else exit
@reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v TileWallpaper /d "0" /f>nul
@reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d "%bmppath%" /f>nul
@reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v WallpaperStyle /d "2" /f>nul
@reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d "%bmppath%" /f>nul
@reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ListviewShadow /d "1" /f>nul
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
set bmppath=
gpupdate /force

exit


试试这个,担是我不知道服务器的路径怎么设,说是要共享文件夹,但试了好几次不行

这个如果连不到服务器,可以取本地的图片为桌面背景
作者: fgwei     时间: 2008-4-8 09:42
太厲害了,這都可以用批處理完成,高手出手,非同小可。
作者: BWSkyer     时间: 2008-4-8 10:27
用vbs貌似更智能~~~
作者: tvzml     时间: 2008-4-8 13:16
我到是需要星期一到星期天的墙纸。
作者: tvzml     时间: 2008-4-8 13:50    标题: 按照星期更改壁纸P处理-TVZML

如果您的系统原先没有设置好墙纸显示模式,那么以下还多了一条规则,以拉伸模式显示墙纸。使用时候注意修改墙纸存放路径,以及墙纸图片必须为BMP格式!


@echo off
rem Wallpaper目录下存放"星期一.bmp — 星期天.bmp"
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d .\Wallpaper\te:~11,4%.bmp /f
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v WallpaperStyle /d 2 /f
gpupdate /force
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters

[ Last edited by tvzml on 2008-4-8 at 01:55 PM ]