您的位置:首页 > 编程语言 > Qt开发

Qt设置windows桌面壁纸

2012-03-26 13:52 501 查看
使用函数:

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只能和常量字符串搭配使用,无法和变量配合。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: