鱼C论坛

 找回密码
 立即注册
查看: 5713|回复: 8

[技术交流] SystemParametersInfo换壁纸

[复制链接]
发表于 2016-9-16 10:30:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 无符号整形 于 2016-9-16 12:12 编辑

@拈花小仙
SystemParametersInfo函数原型:
  1. BOOL WINAPI SystemParametersInfo(
  2.   _In_    UINT  uiAction,
  3.   _In_    UINT  uiParam,
  4.   _Inout_ PVOID pvParam,
  5.   _In_    UINT  fWinIni
  6. );
复制代码

uiAction:该参数指定要查询或设置的参数,换壁纸是SPI_SETDESKWALLPAPER
uiParam:附加值
pvParam:要修改或者查询的缓冲区
fWinIni:指定用户配置文件是否被更新,如果是这样,则指定是否 WM_SETTINGCHANGE 将消息广播到所有的顶层窗口的更改通知他们,可以是0也可以是下列值:
SPIF_UPDATEINIFILE:把新的系统参数的设置内容写入用户配置文件。
SPIF_SENDCHANGE:在更新用户配置文件之后发送WM_SETTINGCHANGE消息。
SPI_SENDWININICHANGE:与 SPIF_SENDCHANGE一样。

那么思路就很明确了
换壁纸我们要给uiAction指定SPI_SETDESKWALLPAPER标志位,然后把SPIF_UPDATEINIFILE传递给fWinIni。
当然,pvParam要指向Unicode的位图路径注意,是位图路径,不允许传JPG,PNG,GIF格式!! 只能传BMP格式。

我们先来随便弄一个图片,比如鱼C的logo

                               
登录/注册后可看大图

把它用画图另存为成bmp格式
logo.bmp
啦啦啦~实验准备完毕,可以开始了
思路:先定义一个路径指向那个位图,然后调用SystemParametersInfo函数

那么,剩下的代码就不难了,注意:1.一定要记得把路径改成你放的位图的路径
2.重点看第6行

  1. #include <windows.h>

  2. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
  3. {
  4. const wchar_t* Path = TEXT("C:\\Users\\Oden\\Desktop\\logo.bmp");
  5. SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID)Path, SPIF_UPDATEINIFILE);
  6. return 0
  7. }
复制代码


秀一秀~~
1230123.JPG
换壁纸之后
12301230123.JPG

点评

我很赞同!: 5.0
我很赞同!: 5
支持UINT windows api短集`  发表于 2016-9-16 11:52
我很赞同!: 5
哇 好厉害哦。  发表于 2016-9-16 11:06

评分

参与人数 2荣誉 +10 鱼币 +10 贡献 +9 收起 理由
拈花小仙 + 5 + 5 + 4 感谢楼主无私奉献!
小甲鱼 + 5 + 5 + 5 热爱鱼C^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-9-16 12:23:21 | 显示全部楼层
@小甲鱼 支持windows api短例`
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-9-16 23:06:54 | 显示全部楼层
拈花小仙 发表于 2016-9-16 12:23
@小甲鱼 支持windows api短例`

支持!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-4 21:48:40 | 显示全部楼层
好有用的API小李子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-5 09:40:34 | 显示全部楼层
SystemParametersInfo括号里的参数都啥意思啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-22 18:53:54 | 显示全部楼层
这个满分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-26 23:15:22 | 显示全部楼层
膜拜大神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 12:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表