Я пытался написать приложение, используя 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;
}
}