更改桌面背景
C++代码(一次运行就有效,但是32位需要自行编译)
#include <windows.h> #include <winreg.h> int main() { // 壁纸路径 const char* wallpaperPath = "D:\\test.jpg"; // 打开注册表键 HKEY hKey; RegOpenKeyEx(HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, KEY_ALL_ACCESS, &hKey); // 设置壁纸样式为适应(WallpaperStyle = 6,TileWallpaper = 0) const char* wallpaperStyle = "6"; const char* tileWallpaper = "0"; RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, (BYTE*)wallpaperStyle, strlen(wallpaperStyle) + 1); RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, (BYTE*)tileWallpaper, strlen(tileWallpaper) + 1); // 关闭注册表键 RegCloseKey(hKey); // 更改壁纸 SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*)wallpaperPath, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); return 0; }
vbs代码(需要运行很多次才有效)
' 创建一个Shell对象以更改壁纸 Set objShell = CreateObject("WScript.Shell") ' 设置壁纸路径 wallpaperPath = "D:\\test.jpg" ' 打开壁纸设置的注册表键 Set objRegistry = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv") strKeyPath = "Control Panel\Desktop" objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "Wallpaper", wallpaperPath objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "WallpaperStyle", "6" objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, "TileWallpaper", "0" ' 发送WM_SETTINGCHANGE消息以更新桌面 objShell.Run "RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True WScript.Quit
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?