# wallpaper_switch **Repository Path**: Asheng008/wallpaper_switch ## Basic Information - **Project Name**: wallpaper_switch - **Description**: 一个用C++写的换壁纸的开源项目,适用于多种操作系统,为用户提供个性化的桌面体验。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-20 - **Last Updated**: 2026-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 壁纸切换工具(Wallpaper Switch) 将计算机名以水印形式绘制到桌面壁纸上的轻量级工具,运行后驻留系统托盘。 ## 功能 - 自动获取当前计算机名(大写),绘制为壁纸水印(水平居中、垂直 1/3 处红色粗体文字,透明背景) - 系统托盘驻留,右键菜单提供三项操作: - **显示计算机名** — 在壁纸上添加计算机名水印并设置为桌面壁纸 - **还原壁纸** — 还原为系统默认的原始壁纸 - **退出** — 移除托盘图标并退出程序 - 单实例保护,重复启动时提示「程序已在运行」 - 字体自动回退:微软雅黑 → Arial - 支持 Windows 7 SP1 / Windows 10(32 位 & 64 位) ## 使用方法 1. 双击 `wallpaper_switch.exe` 启动 2. 程序自动在当前壁纸上绘制计算机名水印并设置为桌面壁纸 3. 右键点击系统托盘图标可弹出菜单 ## 编译 ### 前置条件 - Visual Studio 2017+ (含 C++ 桌面开发工作负载) - Windows SDK 10.0+ ### 一键编译 ```cmd build.bat ``` 编译成功后生成 `wallpaper_switch.exe`(当前目录下)。 ### 手动编译 ```cmd :: 1. 初始化 VS 环境 call "C:\Program Files\Microsoft Visual Studio\18\Community\VC\Auxiliary\Build\vcvarsall.bat" x64 :: 2. 编译资源 rc /Isrc res\app.rc :: 3. 编译并链接 cl /EHsc /W4 /DUNICODE /D_UNICODE /O2 /Fewallpaper_switch.exe ^ src\main.cpp src\tray.cpp src\wallpaper.cpp src\watermark.cpp res\app.res ^ /Isrc ^ /link user32.lib shell32.lib gdi32.lib gdiplus.lib ole32.lib advapi32.lib kernel32.lib shlwapi.lib ``` ### CMake 编译 ```cmd cmake -B build -G "Visual Studio 18 2022" -A x64 cmake --build build --config Release ``` ## 项目结构 ``` wallpaper-switch/ ├── src/ │ ├── resource.h # 资源 ID 定义 │ ├── main.cpp # 程序入口、消息循环、单实例保护 │ ├── tray.h/cpp # 系统托盘管理 │ ├── wallpaper.h/cpp # 壁纸生成与设置 │ └── watermark.h/cpp # GDI+ 水印绘制 ├── res/ │ ├── app.ico # 托盘图标 │ └── app.rc # 资源脚本 ├── docs/ │ ├── requirements.md # 技术需求文档 │ └── todo-list.md # 任务清单 ├── CMakeLists.txt # CMake 构建脚本 ├── build.bat # 一键编译脚本 └── README.md # 本文件 ``` ## 技术细节 | 项目 | 说明 | |------|------| | 水印位置 | 水平居中,垂直方向顶部到底部 1/3 处 | | 水印字体 | 微软雅黑粗体,字号按分辨率自适应(1080p 基准 200px) | | 文字颜色 | 红色,透明背景(无背景条) | | 计算机名 | 自动转大写 | | 临时文件 | Win7: `%TEMP%\wallpaper_switch\wallpaper_with_name.bmp`,Win10+: `.png` | | 原始壁纸 | 从注册表 `HKCU\Control Panel\Desktop\WallPaper` 读取 | ## 已知限制 1. **DPI 缩放** — 高 DPI 下 GDI+ 字体渲染可能模糊 2. **多显示器** — 仅处理主显示器壁纸 3. **壁纸幻灯片** — 若系统启用了壁纸幻灯片,切换后会被静态壁纸覆盖 ## 开机自启(可选) 将 `wallpaper_switch.exe` 的快捷方式放入启动文件夹即可: ``` %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup ``` 或通过任务计划程序创建开机触发任务。