SystemParametersInfo换壁纸
本帖最后由 无符号整形 于 2016-9-16 12:12 编辑@拈花小仙
SystemParametersInfo函数原型:
BOOL WINAPI SystemParametersInfo(
_In_ UINTuiAction,
_In_ UINTuiParam,
_Inout_ PVOID pvParam,
_In_ UINTfWinIni
);
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
http://bbs.fishc.com/template/dreambred_c_apple/images//logo.png
把它用画图另存为成bmp格式
啦啦啦~实验准备完毕,可以开始了
思路:先定义一个路径指向那个位图,然后调用SystemParametersInfo函数
那么,剩下的代码就不难了,注意:1.一定要记得把路径改成你放的位图的路径
2.重点看第6行
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
const wchar_t* Path = TEXT("C:\\Users\\Oden\\Desktop\\logo.bmp");
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID)Path, SPIF_UPDATEINIFILE);
return 0
}
秀一秀~~
换壁纸之后
@小甲鱼 支持windows api短例` 拈花小仙 发表于 2016-9-16 12:23
@小甲鱼 支持windows api短例`
支持!{:10_254:} 好有用的API小李子 SystemParametersInfo括号里的参数都啥意思啊{:5_94:} 这个满分
膜拜大神
页:
[1]