Próbowałem napisać aplikację, używając Qt i mingw32, aby pobrać obrazy i ustawić je jako tapetę tła. Czytałem kilka artykułów online o tym, jak to zrobić, w VB i C#, a do pewnego stopnia, jak to zrobić w języku C++. Obecnie nazywam SystemParametersInfo
z co wydaje się być wszystkie poprawne argumenty (bez błędów kompilatora) i nie powiedzie się. Brak poważnych awarii cymbałów, zwrócił tylko 0
. GetLastError()
zwraca równie pouczającą wartość: 0
.Zmiana tapety programowo za pomocą C++ i Windows api
Poniżej znajduje się kod, którego używam (w nieco zmodyfikowanej formie, dzięki czemu nie trzeba oglądać obiektów wewnętrznych).
#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;
}
}
wypróbowałeś go z plikiem bitmapowym, a nie png/jpg? –
Próbowano za pomocą png, jpeg, bmp. –