C#에서 Windows 10 배경화면 사진 가져오는 방법?

안녕하세요. :smile:

C#에서 Windows 10 배경화면으로 지정된 이미지를 가져올 수 있을까요?

먼저, 제가 시도해본 코드 중 가장 근접한 것은 이미지의 파일 정보를 가져오는 것입니다.

D:\james\2019.08.13\IMG_3744.JPG

하지만 이것은 USB 메모리 주소입니다. (배경화면 등록 당시의 주소)

(그리고 아래는 제가 시도한 소스코드입니다.)

byte[] path = (byte[])Registry.CurrentUser
    .OpenSubKey("Control Panel\\Desktop").GetValue("TranscodedImageCache");
String wallpaper_file = Encoding.Unicode.GetString(SliceMe(path, 24))
    .TrimEnd("\0".ToCharArray());

혹시 현재 등록된 배경화면의 이미지 스트림을 C#으로 가져올 수 있는 방법이 있을까요?

읽어주셔서 감사합니다!

좋아요 1

"HKEY_CURRENT_USER\Control Panel\Desktop, TranscodedImageCache"에 경로가 있긴 하지만, 다음의 글을 보면,

Path to current desktop backgrounds in Windows 10? - Super User

%AppData%\Microsoft\Windows\Themes 디렉터리에 “TranscodedWallpaper” 라는 이름으로 복사해 보관해 두는 것 같습니다.

좋아요 2