【发布时间】:2011-03-20 21:19:46
【问题描述】:
我一直在尝试使用 Qt 和 mingw32 编写一个应用程序来下载图像并将它们设置为背景墙纸。我已经在网上阅读了几篇关于如何在 VB 和 C# 中执行此操作的文章,以及在某种程度上如何在 C++ 中执行此操作。我目前正在调用SystemParametersInfo,似乎所有的参数都是正确的(没有编译器错误),但它失败了。没有大钹崩溃,只是返回了0。 GetLastError() 返回同样具有启发性的 0。
以下是我正在使用的代码(形式稍作修改,因此您不必查看对象内部结构)。
#include <windows.h>
#include <iostream>
#include <QString>
void setWall()
{
QString filepath = "C:\\Documents and Settings\\Owner\\My Documents\\Wallpapers\\wallpaper.png";
char path[150];
strcpy(path, currentFilePath.toStdString().c_str());
char *pathp;
pathp = path;
cout << path;
int result;
result = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, pathp, SPIF_UPDATEINIFILE);
if (result)
{
cout << "Wallpaper set";
}
else
{
cout << "Wallpaper not set";
cout << "SPI returned" << result;
}
}
【问题讨论】:
-
你试过用位图文件而不是 png/jpg 吗?
标签: c++ winapi qt wallpaper desktop-wallpaper