Я пытаюсь изменить фон рабочего стола / обои на другое изображение с файлом .png. Хотя при запуске программы фон становится сплошным черным.
Я уверен, что я правильно ввел имя файла "ksa.png" в своем коде, чтобы оно было изображением, которое я хочу видеть на своем фоне. Я использовал условие if, чтобы записать последнюю ошибку в файл при возникновении ошибки, и использовал условие else, чтобы записать «Success», если ошибок не было; но когда я запускаю программу, она пишет «Успех» в файл. Я думал об использовании файла .jpg, думая, что, возможно, файлы .png просто не работают. Я дам обновление, когда я попробовал использовать это.
#include <windows.h>
#include <fstream>
int main () {
const wchar_t *filenm = L"ksa.png";
std::ofstream log;
if (SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*)filenm, SPIF_UPDATEINIFILE) == FALSE) {
log.open("log.txt");
log << "Error: " << GetLastError();
log.close();
}
else {
log.open("log.txt");
log << "Success";
log.close();
}
return 0;
}
Когда я запускаю эту программу, фон рабочего стола предполагается установить как изображение "ksa.png". Вместо этого он сплошной черный. Спасибо за помощь в создании этой работы, спасибо.
UPDATE
Хорошо, я обновил код, чтобы он запускал файл .jpg, и я все еще получаю тот же результат. Также я переместил команду line log.open("log.txt")
перед функцией SystemParametersInfo()
, как предложил Реми Лебо, и она все еще записывает «Success» в файл. У меня все та же проблема.
Вот мой обновленный код:
#include <windows.h>
#include <fstream>
int main () {
const wchar_t *filenm = L"3.jpg";
std::ofstream log;
log.open("log.txt");
if (SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (void*)filenm, SPIF_UPDATEINIFILE) == FALSE) {
log << "Error: " << GetLastError();
log.close();
}
else {
log.open("log.txt");
log << "Success";
log.close();
}
return 0;
}