使用c和windows api以编程方式更改壁纸
发布时间:2020-12-16 03:38:18 所属栏目:百科 来源:网络整理
导读:我一直在尝试使用Qt和mingw32编写一个应用程序来下载图像并将它们设置为背景壁纸.我已经在线阅读了几篇关于如何在VB和C#中执行此操作的文章,并且在某种程度上如何在c中执行此操作.我目前正在调用SystemParametersInfo,看起来似乎是所有正确的参数(没有编译器
我一直在尝试使用Qt和mingw32编写一个应用程序来下载图像并将它们设置为背景壁纸.我已经在线阅读了几篇关于如何在VB和C#中执行此操作的文章,并且在某种程度上如何在c中执行此操作.我目前正在调用SystemParametersInfo,看起来似乎是所有正确的参数(没有编译器错误),它失败了.没有镲片崩溃,只返了0. GetLastError()返回同样有启发性的0.
下面是我正在使用的代码(稍微修改一下,因此您不必查看对象内部). #include <windows.h> #include <iostream> #include <QString> void setWall() { QString filepath = "C:Documents and SettingsOwnerMy DocumentsWallpaperswallpaper.png"; char path[150]; strcpy(path,currentFilePath.toStdString().c_str()); char *pathp; pathp = path; cout << path; int result; result = SystemParametersInfo(SPI_SETDESKWALLPAPER,pathp,SPIF_UPDATEINIFILE); if (result) { cout << "Wallpaper set"; } else { cout << "Wallpaper not set"; cout << "SPI returned" << result; } } 解决方法
可能是SystemParametersInfo期望LPWSTR(指向wchar_t的指针).
试试这个: LPWSTR test = L"C:Documents and SettingsOwnerMy DocumentsWallpaperswallpaper.png"; result = SystemParametersInfo(SPI_SETDESKWALLPAPER,test,SPIF_UPDATEINIFILE); 如果这样可行(尝试使用几个不同的文件来确保),则需要将char *转换为LPWSTR.我不确定Qt是否提供这些服务,但一个可能有用的功能是 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- react-native run-android 慢
- 排序 – 在应用程序的creationComplete(Flex 4.5)上设置Spa
- postgresql – 空闲的postgres进程占用大量的内存
- 自定义视图一:扩展现有的视图,添加新的XML属性
- Electron webFrame 模块
- Ext中JsonStore重新设置url然后加载数据的方法
- SCA 之Tuscany 8 ——helloworld JSONP和JSONRPC
- 正则表达式
- c# – 无法将TFS项目映射到Visual Studio 2013中的网络驱动
- ruby-on-rails – rake aborted!用于ActiveRecord :: Base