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;
}
}