【发布时间】:2013-02-01 05:00:07
【问题描述】:
#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。我做错了什么?
【问题讨论】:
-
您可以尝试
GetLastError()找出问题所在 -
The docs say "注意当使用
SPI_SETDESKWALLPAPER标志时,SystemParametersInfo总是返回TRUE。" -
@Carl 文档撒了一个大大的谎言!
-
文档还讲述了,关于第三个参数:“一个参数,其用法和格式取决于被查询或设置的系统参数。有关系统范围参数的更多信息,请参阅uiAction参数。如果没有另外说明,您必须为此参数指定 NULL。有关 PVOID 数据类型的信息,请参阅 Windows 数据类型。"并且没有为
SPI_SETDESKWALLPAPER指定任何内容。也许是丢失的标志? -
NULL 在 Windows 下为 0。使用哪一个并不重要。