C++ 设置桌面壁纸
来源:互联网 发布:jpg读取函数 c语言 编辑:程序博客网 时间:2024/04/29 22:57
定义一个函数来实现主要的功能:
HRESULT SetDesktopWallpaper(PWSTR pszFile, WallpaperStyle style);
HRESULT SetDesktopWallpaper(PWSTR pszFile, WallpaperStyle style);
WallpaperStyle是一个枚举类型,定义了壁纸显示的类型
enum WallpaperStyle{ Tile,//平铺 Center,//居中 Stretch,//拉伸 Fit, //适应 Fill//填充};
//// FUNCTION: SetDesktopWallpaper(PCWSTR, WallpaperStyle)//// PURPOSE: Set the desktop wallpaper.//// PARAMETERS: // * pszFile - Path of the wallpaper// * style - Wallpaper style//HRESULT SetDesktopWallpaper(PWSTR pszFile, WallpaperStyle style){ HRESULT hr = S_OK; //设置壁纸风格和展开方式//在Control Panel\Desktop中的两个键值将被设置 // TileWallpaper // 0: 图片不被平铺 // 1: 被平铺 // WallpaperStyle // 0: 0表示图片居中,1表示平铺 // 2: 拉伸填充整个屏幕 // 6: 拉伸适应屏幕并保持高度比 // 10: 图片被调整大小裁剪适应屏幕保持纵横比//以可读可写的方式打开HKCU\Control Panel\Desktop注册表项 HKEY hKey = NULL; hr = HRESULT_FROM_WIN32(RegOpenKeyEx(HKEY_CURRENT_USER, L"Control Panel\\Desktop", 0, KEY_READ | KEY_WRITE, &hKey)); if (SUCCEEDED(hr)) { PWSTR pszWallpaperStyle; PWSTR pszTileWallpaper; switch (style) { case Tile: pszWallpaperStyle = L"0"; pszTileWallpaper = L"1"; break; case Center: pszWallpaperStyle = L"0"; pszTileWallpaper = L"0"; break; case Stretch: pszWallpaperStyle = L"2"; pszTileWallpaper = L"0"; break; case Fit: // (Windows 7 and later) pszWallpaperStyle = L"6"; pszTileWallpaper = L"0"; break; case Fill: // (Windows 7 and later) pszWallpaperStyle = L"10"; pszTileWallpaper = L"0"; break; } // 设置 WallpaperStyle 和 TileWallpaper 到注册表项. DWORD cbData = lstrlen(pszWallpaperStyle) * sizeof(*pszWallpaperStyle); hr = HRESULT_FROM_WIN32(RegSetValueEx(hKey, L"WallpaperStyle", 0, REG_SZ, reinterpret_cast<const BYTE *>(pszWallpaperStyle), cbData)); if (SUCCEEDED(hr)) { cbData = lstrlen(pszTileWallpaper) * sizeof(*pszTileWallpaper); hr = HRESULT_FROM_WIN32(RegSetValueEx(hKey, L"TileWallpaper", 0, REG_SZ, reinterpret_cast<const BYTE *>(pszTileWallpaper), cbData)); } RegCloseKey(hKey); }//通过调用Win32 API函数SystemParametersInfo 设置桌面壁纸/************************************************之前我们已经设置了壁纸的类型,但是壁纸图片的实际文件路径还没设置。SystemParametersInfo 这个函数位于user32.dll中,它支持我们从系统中获得硬件和配置信息。它有四个参数,第一个指明调用这个函数所要执行的操作,接下来的两个参数指明将要设置的数据,依据第一个参数的设定。最后一个允许指定改变是否被保存。这里第一个参数我们应指定SPI_SETDESKWALLPAPER,指明我们是要设置壁纸。接下来是文件路径。在Vista之前必须是一个.bmp的文件。Vista和更高级的系统支持.jpg格式*************************************************///SPI_SETDESKWALLPAPER参数使得壁纸改变保存并持续可见。 if (SUCCEEDED(hr)) { if (!SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, static_cast<PVOID>(pszFile), SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE)) { hr = HRESULT_FROM_WIN32(GetLastError()); } } return hr;}
- python:设置windows桌面壁纸
- Qt设置windows桌面壁纸
- Android设置桌面壁纸代码
- android中设置桌面壁纸
- C++ 设置桌面壁纸
- 下载bing图片并设置成桌面壁纸
- 将应用程序背景设置为桌面壁纸背景
- 将本地图片设置为桌面壁纸方法
- C/C++程序员桌面壁纸---简尚黑
- 用C#三两下设置桌面壁纸[C#实例学习系列]
- android 锁屏壁纸和桌面壁纸的设置实现
- 设置桌面壁纸时 'IActiveDesktop' : undeclared identifier 的处理
- [Python] 抓取必应每日一图,设置为桌面壁纸
- 删除桌面壁纸的小程序(c语言)
- 史上最极客桌面壁纸
- Android桌面壁纸
- 小米2.3系统手机桌面壁纸不随着屏幕滑动设置方法
- 利用Powershell每天自动设置提取Win10的windows聚焦图片(Spotlight)作为桌面壁纸的方法
- 负载均衡
- 文件搜索(待续)
- bootstrap 学习之路5
- 大数乘法
- Mina客户端和服务端代码编写
- C++ 设置桌面壁纸
- hdu 4414
- JSP九大内置对象
- 优化MyEclipse
- UVa 11029 - Leading and Trailing 数学题(求n^k的前N位和后N位)
- ibais 模糊查询
- 将View 转换成 Bitmap
- 前端开发之跨域数据调用
- java排序总结(Comparator、apache-common工具包两种方法)