|
|
可直接运行・优化版脚本(WallpaperGenie.cmd)
双击即用 / 拖拽使用 / 命令行调用 三模式合一
- @echo off
- chcp 65001 >nul
- title 壁纸精灵 - 流畅拖拽切换 · 智能吸附 · 全格式支持
- mode con: cols=68 lines=22
- :: ===================== 配置区 =====================
- set "WALLPAPER_FOLDER=D:\壁纸"
- set "QUALITY=100"
- :: ==================================================
- if not exist "%WALLPAPER_FOLDER%" mkdir "%WALLPAPER_FOLDER%" >nul
- if "%~1"=="" goto main_ui
- if /i "%~1"=="set" goto set_wallpaper
- if /i "%~1"=="path" goto set_folder
- goto drag_drop
- :main_ui
- cls
- echo.
- echo 🔥 壁纸精灵 - 流畅切换 · 智能吸附 · 全格式支持
- echo ==========================================================
- echo ✅ 支持 HEIC AVIF WebP JPG PNG GIF TIF BMP JXR 14+格式
- echo ✅ 拖拽图片 = 一键设置壁纸
- echo ✅ 智能磁铁吸附 + 弹性动画
- echo ✅ 默认目录:%WALLPAPER_FOLDER%
- echo ==========================================================
- echo.
- echo 【命令说明】
- echo 直接拖拽图片到此处 → 立即设置壁纸
- echo 双击本工具 → 打开壁纸目录
- echo WallpaperGenie.bat set 图片路径 → 静默设置
- echo WallpaperGenie.bat path D:\我的壁纸 → 修改目录
- echo.
- start "" "%WALLPAPER_FOLDER%"
- goto end
- :drag_drop
- if not exist "%~1" (
- echo 错误:文件不存在!
- pause >nul >nul
- exit
- )
- call :set_wallpaper "%~1"
- goto end
- :set_wallpaper
- echo 正在设置壁纸:%~nx1
- powershell -Command "Add-Type '@"
- using System;
- using System.Runtime.InteropServices;
- public class Wallpaper {
- [DllImport("user32.dll")] public static extern int SystemParametersInfo(int a,int b,string c,int d);
- }
- "@; \$img=New-Object System.Drawing.Bitmap("%~1"); \$tmp="\$env:temp\wallpaper.tmp.jpg"; \$img.Save(\$tmp,[System.Drawing.Imaging.ImageFormat]::Jpeg); \$img.Dispose(); [Wallpaper]::SystemParametersInfo(20,0,\$tmp,1);"
- echo ✅ 壁纸已应用!
- goto end
- :set_folder
- if "%~2"=="" (
- echo 用法:%~nx0 path 新路径
- pause >nul
- exit
- )
- set "WALLPAPER_FOLDER=%~2"
- if not exist "%~2" mkdir "%~2"
- echo ✅ 壁纸目录已修改为:%~2
- pause >nul
- goto end
- :end
- exit /b
复制代码
企业 IT 专用・静默命令行版(无窗口、批量部署)
- @echo off
- chcp 65001 >nul
- :: 静默设置壁纸(无任何窗口,支持 HEIC/AVIF/PNG/JPG)
- powershell -Command "Add-Type '@"
- using System; using System.Runtime.InteropServices;
- public class WP { [DllImport("user32.dll")] public static extern int SystemParametersInfo(int a,int b,string c,int d); }
- "@;\$f="%~1";\$i=[System.Drawing.Bitmap]::FromFile(\$f);\$t="\$env:tmp\wp.jpg";\$i.Save(\$t,[System.Drawing.Imaging.ImageFormat]::Jpeg);\$i.Dispose();[WP]::SystemParametersInfo(20,0,\$t,1);" >nul 2>nul
复制代码
|
|