【问题标题】:How to change desktop background using VC++如何使用 VC++ 更改桌面背景
【发布时间】:2016-10-06 03:15:54
【问题描述】:

我目前正在尝试使用 SystemParametersInfo() 更改我的桌面背景 vs 当我输入我的东西时没有给我任何错误,但是当我运行程序时,我收到带有黄色三角形的警告,它说在 KernelBase.dll 中抛出了某种异常,然后它说一些 PDB 还没有加载。我很久以前就这样做了,并且能够让它工作,但我不记得有谁能帮助我吗?这是我写的

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:/Windows/Downloaded Program Files/Flowers.jpg", SPIF_UPDATEINIFILE);

有谁知道为什么会发生这种情况以及如何解决它?任何帮助表示赞赏,谢谢

【问题讨论】:

  • 实际的错误内容而不仅仅是描述会更有帮助。目前的通话看起来不错。除了改变背景,你还在做其他事情吗?程序是在不同的用户下运行还是在不同的权限下运行?您确定错误实际上来自此SystemParametersInfo() 调用吗?

标签: c++ desktop wallpaper


【解决方案1】:

您需要在文件路径中添加LL"C:/Windows/Downloaded Program Files/Flowers.jpg" .

#include "stdafx.h"
#include <windows.h>

int main() {

    int return_value = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, L"d:/flower1.jpg", SPIF_UPDATEINIFILE);

    return 0;
}

【讨论】:

  • 任何解释为什么要使用L
  • L 使其成为宽字符串 (const wchar_t[]) 而不是 ASCII 字符串 (const char[])
【解决方案2】:

对错误的更好描述肯定会有所帮助。不过,对于初学者,您应该将所有正斜杠替换为双黑斜杠“\\”。

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\\Windows\\Downloaded Program Files\\Flowers.jpg", SPIF_UPDATEINIFILE);

看起来不错,但是如果没有更多信息,就无法说明错误的实际原因是什么。 PDB 文件也不会影响程序,它是用于调试文件的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2015-10-04
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多