通过修改桌面壁纸的注册表值达到修改桌面图片的功效。 查找桌面图片的注册表位置: 快捷键win + R 输入 regedit 回车 注册表路径找出来后,新建一个qt的控制台应用程序,这里需要编辑注册表的值(图片路径),需要用QSettings类及windows API SystemParametersInfoA,先把两者需要的头文件加上 #include #include “windows.h” 这里将设置桌面图片过程写了了接口setDesktopImage,main.cpp全部代码如下
#include
#include
#include "windows.h"
void setDesktopImage();//定义在main函数下面
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
setDesktopImage();
return a.exec();
}
void setDesktopImage()
{
//壁纸注册表表
QSettings wallPaper("HKEY_CURRENT_USER\\Control Panel\\Desktop",
QSettings::NativeFormat);
//新的桌面图片路径
QString path("D:/xxx/xxx/xxx.png");
//给壁纸注册表设置新的值(新的图片路径)
wallPaper.setValue("Wallpaper",path);
QByteArray byte = path.toLocal8Bit();
//调用windowsAPI
SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, byte.data(), SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
}
运行,ok!
|