实用批处理--更换桌面背景

"%userProfile%/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"
此为当前桌面背景完整路径。

测试环境:XP SP2

::复制更换桌面背景.bat::
::将bmp格式图片拖入P中
@echo off
title 更换桌面背景
cd/d %~dp0
if /i %~x1==.BMP copy %1 "%userProfile%/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"
echo 正在更换桌面背景
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
goto :eof
::复制更换桌面背景.bat::
::::::::::::::::::::::::

::一般更换墙纸.bat::
::图片为bmp格式
::拖入bmp格式图片即设置它为背景。
::直接双击运行,若当前目录中有bmp格式图片,则将名称排在最后的一张设为壁纸
@echo off
title 更换墙纸
setlocal enableDelayedExpansion
set pic=%1
if "!pic!"=="" call :search
if "!pic!"=="" set pic="%userProfile%/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"
echo 正在添加注册表项目...
reg add "HKCU/Control Panel/Desktop" /v Wallpaper /d !pic! /f>nul
reg add "HKCU/Control Panel/Desktop" /v WallpaperStyle /d "2" /f>nul
echo 正在更换桌面背景
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
goto :eof
:search
 cd/d "%~dp0"
 for /f "delims=" %%a in ('dir/b *.bmp') do (
  set pic="%~dp0%%a"
 )
 goto :eof
::一般更换壁纸.bat::
::::::::::::::::::::

 

::强制更换壁纸.bat::
::有些系统不能成功
::图片为bmp或jpg格式
::如果图片格式为jpg,则桌面图标文字有背景色(成功设置后,运行一遍下面的还原壁纸可去除背景色)
::拖入图片运行
::双击直接运行,名字排后的一张设为背景
::同时可以禁止通过桌面属性来更改壁纸(用软件更改不能禁止)
@echo off
title 更换壁纸
setlocal enableDelayedExpansion
set pic=%1
if "!pic!"=="" call :search
if "!pic!"=="" set pic="%userProfile%/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"
echo 正在添加注册表项目...
reg add "HKCU/Control Panel/Desktop" /v Wallpaper /d !pic! /f>nul
reg add "HKCU/Control Panel/Desktop" /v WallpaperStyle /d "2" /f>nul
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Policies/System" /v Wallpaper /d !pic! /f>nul
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Policies/System" /v WallpaperStyle /d "2" /f>nul
echo 正在更换桌面背景
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
goto :eof
:search
 cd/d "%~dp0"
 for /f "delims=" %%a in ('dir/b *.jpg *.bmp') do (
  set pic="%~dp0%%a"
 )
 goto :eof
::强制更换壁纸.bat::
::::::::::::::::::::

::还原壁纸.bat::
::确保有"%userProfile%/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"
@echo off
title 还原壁纸
set pic="%userProfile%/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"
echo 正在添加注册表项目...
reg add "HKCU/Control Panel/Desktop" /v Wallpaper /d %pic% /f>nul
reg add "HKCU/Control Panel/Desktop" /v WallpaperStyle /d "2" /f>nul
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Policies/System" /v Wallpaper /d %pic% /f>nul
reg add "HKCU/Software/Microsoft/Windows/CurrentVersion/Policies/System" /v WallpaperStyle /d "2" /f>nul
echo 正在还原桌面背景
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
goto :eof
::还原壁纸.bat::
::::::::::::::::

说明文档
存放桌面背景的几个路径
-------------------------
C:/WINDOWS/Web/Wallpaper
::jpg桌面(还有Bliss.bmp)
C:/WINDOWS
::bmp桌面
[图片收藏]或[我的图片][My Pictures]
::jpg、bmp、gif
-------------------------
其他两个位置
-------------------------
你指定的图片位置
::jpg、bmp、gif
"%userProfile%/Local Settings/Application Data/Microsoft/Wallpaper1.bmp"
::无特殊情况即为当前桌面背景
=========================

你可能感兴趣的:(实用批处理--更换桌面背景)