#include <iostream>
#include <windows.h>
using namespace std;
int main(){
LPWSTR test = L"C:/aizen.png";
int result = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, test, SPIF_UPDATEINIFILE);
if(result)
cout << "Wallpaper set!";
else
cout << "NOOOOO!" << result;
cin >> result;
return 0;
}
非常简单的代码,但结果返回0.我做错了什么?
答案 0 :(得分:3)
执行documentation所说的内容,并致电GetLastError
以找出错误背后的原因。
有些可能的原因让人想起:
SystemParametersInfo
不喜欢使用正斜杠作为分隔符。真的,名单是无止境的。所以让系统告诉你。
请注意文档说:
使用
SPI_SETDESKWALLPAPER
标记时,SystemParametersInfo
始终返回TRUE
。
但这是一个很大的肥胖谎言。调用函数,传递SPI_SETDESKWALLPAPER
并接收FALSE
作为回报非常容易。
答案 1 :(得分:0)
不知道我们掌握的信息。
此返回值表示呼叫失败。您需要致电GetLastError()
以获取有关原因的信息。