gpt4 book ai didi

c++ - 如何使用 C++ 更改 Windows 10 壁纸?

转载 作者:可可西里 更新时间:2023-11-01 10:10:53 27 4
gpt4 key购买 nike

我希望使用 Windows API 在 C++ 中更改 Windows 桌面背景墙纸。

我已阅读以下有关此主题的帖子:

问题:

当我执行代码时,桌面背景变成全黑,就像上面的帖子一样(是的,我确实尝试了该帖子中建议的修复方法。运气不好。)

代码:

#include <windows.h>

int main() {
std::string s = "C:\\picture.jpg";
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, (PVOID*)s.c_str(), SPIF_SENDCHANGE);
return 0;
}

我还尝试了 (void*) 而不是上面的 (PVOID*) 和字符串前面的 L 。到目前为止没有任何效果。

已解决:

SystemParametersInfo 更改为 SystemParametersInfoA(如评论和答案中所建议的那样)达到了目的。

最佳答案

我认为您应该使用 wchar_t 作为 SystemParametersInfo() 的输入而不是字符串,并且还应该使用 SystemParametersInfoW()

以下代码对我有用:

#include <windows.h>
#include <iostream>


int main() {
const wchar_t *path = L"C:\\image.png";
int result;
result = SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, (void *)path, SPIF_UPDATEINIFILE);
std::cout << result;
return 0;
}

如果它设法改变背​​景,结果应该返回 true。

关于c++ - 如何使用 C++ 更改 Windows 10 壁纸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56549147/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com