使用函数:
SystemParametersInfo,具体参数看已通过百度或谷歌去搜索。
QString src = tr("F:/workspace/DesktopMedia/debug/downloadDir/120323070238652.jpg");
TCHAR *ptch = (TCHAR *)src.toStdWString().c_str(); // 转换成宽字节,很重要,否则显示不了图片
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,ptch, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
调试程序:
BOOL lres = SystemParametersInfoW(
SPI_SETDESKWALLPAPER,
0,
(PVOID)TEXT("F:/workspace/DesktopMedia/debug/downloadDir/120323070238652.jpg"),
// (PVOID)ptch,
SPIF_SENDCHANGE | SPIF_UPDATEINIFILE);
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
MessageBox(NULL,(LPCTSTR)lpMsgBuf, TEXT("Error"), MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
if (!lres)
{
MessageBox(NULL,TEXT("ERROR"),TEXT("FAIL"),MB_OK);
}
这里需要说一下,如果不使用TCHAR,可以使用宏TEXT。TEXT只能和常量字符串搭配使用,无法和变量配合。