#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。我做错了什么?
做该做的事文档 http://msdn.microsoft.com/en-gb/library/windows/desktop/ms724947.aspx说,然后打电话GetLastError
找出错误背后的原因。
我想到了一些可能的原因:
-
SystemParametersInfo
不喜欢用正斜杠作为分隔符。
- 系统不喜欢 .png 文件作为壁纸。
- 该文件不存在。
- 您的 ANSI/Unicode 编码不匹配。
- 您无权修改壁纸。
确实,这个清单是无穷无尽的。那么就让系统来告诉你吧。
请注意,文档说:
当。。。的时候SPI_SETDESKWALLPAPER
使用标志,SystemParametersInfo
总是返回TRUE
.
但这是一个弥天大谎。调用该函数非常简单,通过SPI_SETDESKWALLPAPER
,并接收FALSE
作为回报。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)