He intentado escribir una aplicación, usando Qt y mingw32, para descargar imágenes y configurarlas como Fondo de pantalla. He leído varios artículos en línea sobre cómo hacer esto, en VB y C#, y en cierta medida cómo hacerlo en C++. Actualmente estoy llamando al SystemParametersInfo
con lo que parecen ser todos los argumentos correctos (sin errores del compilador) y falla. No se produjo un gran choque de platillos, solo un 0
devuelto. GetLastError()
devuelve un igualmente esclarecedor 0
.Cambiar el fondo de pantalla mediante programación usando C++ y Windows api
A continuación se muestra el código que estoy usando (en una forma ligeramente modificada, para que no tenga que ver las partes internas del objeto).
#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;
}
}
¿Has probado con un archivo de mapa de bits y no png/jpg? –
Probado con png, jpeg, bmp. –