我一直在嘗試編寫一個應用程序,使用Qt和mingw32來下載圖像並將它們設置爲背景牆紙。我已經在網上閱讀了幾篇關於如何在VB和C#中實現這個目標的文章,並且在某種程度上如何在C++中實現它。我目前正在調用SystemParametersInfo
似乎是所有正確的參數(沒有編譯器錯誤),它失敗了。沒有很大的鐃crash碰撞,只是一個0
返回。 GetLastError()
返回同樣啓發0
。用C++和windows api編程改變壁紙
下面是我正在使用的代碼(在稍作修改的形式,所以你不必查看對象的內部)。
#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? – 2010-07-26 01:07:02
嘗試與PNG,JPEG,BMP。 – 2010-07-26 01:11:57