具有SPI_SETDESKWALLPAPER功能的程序仅在尝试使用C++将其更改为图像时将桌面背景更改为黑色
Program with SPI_SETDESKWALLPAPER Function Only Changes the Desktop Background to the Color Black when Trying to Change it to an Image using C++
我正在尝试将桌面背景/墙纸更改为带有.png文件的其他图像。虽然当我运行程序时,背景变成了纯黑色。
我确定我在代码中正确键入了文件名"ksa.png",成为我想要出现在背景上的图像。当错误发生时,我使用 if 条件写出文件上的最后一个错误,如果没有发生错误,我使用 else 条件写出"成功";但是当我运行该程序时,它会将"成功"写入文件。我曾考虑过改用.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"。相反,它是纯黑色的。感谢任何帮助使这项工作,谢谢。
更新
好的,所以我将代码更新到运行.jpg文件的位置,但我仍然得到相同的结果。此外,我按照 Remy Lebeau 的建议将行log.open("log.txt")
命令移动到SystemParametersInfo()
函数之前,它仍然在文件中写出"成功"。我仍然有同样的问题。 这是我更新的代码:
#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;
}
嗯,你的图片路径有问题。我试过你的代码。除非使用绝对路径,否则无法在相对路径下获取图片。
就像科迪格雷♦的判断一样.
const wchar_t *filenm = L"C:\Users\strives\Desktop\timg.bmp";
相关文章:
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 平均图像时图像损坏
- 在C++中使用GDAL可以将图像的像素坐标转换为lat,long吗
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- Vulkan验证层不断在VkQueuePresentKHR()上抛出图像布局错误
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 将RGB图像保存为PPM格式
- 将图像添加到资源文件夹UWP C++
- 彩色图像的卤化物处理平均值
- C++射线示踪剂ppm表示没有足够的数据来显示图像
- 重新定位图像时如何前进到下一个内存块
- 如何使用按钮更新GTK3图像以使用C++从相机捕获图片
- 为什么 BMP 图像上的 imwrite 会卡住/不返回?
- Gstreamer:每 5 秒使用多文件墨水保存图像/jpeg
- 如何使用CImg打开图像?
- 如何使用 OpenCV 解码在两个 UWP 应用之间发送的图像字节?
- 使用 CUDA 和纹理进行图像减法