Ho cercato di scrivere un'applicazione, utilizzando Qt e mingw32, per scaricare immagini e impostarle come sfondo. Ho letto diversi articoli online su come farlo, in VB e C#, e in una certa misura come farlo in C++. Attualmente sto chiamando il SystemParametersInfo
con quello che sembra essere tutti gli argomenti corretti (senza errori del compilatore) e fallisce. Nessun grande crash di piatti, solo un 0
restituito. GetLastError()
restituisce un ugualmente illuminante 0
.Cambia lo sfondo in modo programmatico utilizzando C++ e windows api
Di seguito è riportato il codice che sto utilizzando (in una forma leggermente modificata, quindi non è necessario visualizzare gli interni dell'oggetto).
#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;
}
}
hai provato con un file bitmap e non png/jpg? –
Provato con png, jpeg, bmp. –