C++ 获取当前桌面壁纸的路径

C++ 获取当前桌面壁纸的路径,c++,windows,desktop-wallpaper,C++,Windows,Desktop Wallpaper,正如标题中提到的,我想获得当前桌面墙纸的路径(用C++)。我尝试将SystemParametersInfo与SPI\u getdeskwallper一起使用。但这只会返回: %AppData%\Microsoft\Windows\Themes\TranscodedWallpaper 我真正需要的是这样的东西: C:\User\…\image.png 有什么方法可以做到这一点吗?有注册表配置单元HKEY\U CURRENT\U USER\Control Panel\Desktop。它具有名称为“壁

正如标题中提到的,我想获得当前桌面墙纸的路径(用C++)。我尝试将
SystemParametersInfo
SPI\u getdeskwallper
一起使用。但这只会返回:

%AppData%\Microsoft\Windows\Themes\TranscodedWallpaper

我真正需要的是这样的东西:

C:\User\…\image.png


有什么方法可以做到这一点吗?

有注册表配置单元HKEY\U CURRENT\U USER\Control Panel\Desktop。它具有名称为“壁纸”的值。它包含当前墙纸的路径。

有注册表配置单元HKEY\u current\u USER\Control Panel\Desktop。它具有名称为“壁纸”的值。它包含当前墙纸的路径。

您可以转到注册表的HKEY_current_USER\Control Panel\Desktop部分,找到六个最近转码到转码墙纸的文件。 有名字吗

  • 转码图像缓存
  • 转码图像缓存\u 000
  • 转码图像缓存_001
  • 转码图像缓存_002
  • 转码图像缓存_003
  • 转码图像缓存_004
基本上,无需任何工具即可阅读:
但是,可以使用任何能够显示unicode文本的工具将其转换为更可读的视图。您可以转到注册表的HKEY_CURRENT_USER\Control Panel\Desktop部分,找到六个最近转换为TranscodedWallpaper的文件。 有名字吗

  • 转码图像缓存
  • 转码图像缓存\u 000
  • 转码图像缓存_001
  • 转码图像缓存_002
  • 转码图像缓存_003
  • 转码图像缓存_004
基本上,无需任何工具即可阅读:
但是它可以通过任何能够显示unicode文本的工具转换为更可读的视图

此路径也只是
%AppData%\Microsoft\Windows\Themes\TranscodedWallpaper
。我想处理原始文件,所以我需要原始文件的路径。所以基本上,我想知道复制到“转码墙纸”中的文件的路径。这可能会有帮助。您可以通过获取当前主题并解析该文件。主题文件包含带有参数wallpaper的控制面板\桌面部分参数wallpaper包含相同的部分。但是参数TranscodedImageCache正好包含我要搜索的内容!:)此路径也只是
%AppData%\Microsoft\Windows\Themes\TranscodedWallpaper
。我想处理原始文件,因此需要原始文件的路径。所以基本上,我想知道复制到“转码墙纸”中的文件的路径。这可能会有帮助。您可以通过获取当前主题并解析该文件。主题文件包含带有参数wallpaper的控制面板\桌面部分参数wallpaper包含相同的部分。但是参数TranscodedImageCache正好包含我要搜索的内容!:)出于某些原因,每个窗口版本都会以不同的方式处理此问题。据我所知,没有答案。您实际上并不需要此信息。您可以在此处找到此信息:HKEY_CURRENT_USER\Control Panel\TranscodedImageCache(Windows 10)。是的,我确实需要这些信息!文档化的接口是。未记录的注册表项可能会更改。由于某些原因,每个窗口版本的处理方式都不同。据我所知,没有答案。您实际上并不需要此信息。您可以在此处找到此信息:HKEY_CURRENT_USER\Control Panel\TranscodedImageCache(Windows 10)。是的,我确实需要这些信息!文档化的接口是。未记录的注册表项可能会发生更改。