Po niedawnym uaktualnieniu do systemu Windows 8 mój skrypt pobierania aktualnego obrazu tapety pulpitu jest uszkodzony.
W przypadku systemu Windows 7, jak mogę znaleźć ścieżkę do bieżącego obrazu pulpitu? , to działa świetnie. Jednak ten klucz rejestru zawsze zawiera teraz
C:\Windows\web\wallpaper\Windows\img0.jpg
Jakiego nowego klucza rejestru używa się w systemie Windows 8?
Znalazłem dwa możliwe rozwiązania.
Po pierwsze, ten klucz zawiera coś, co wygląda jak ścieżka zakodowana w Base64:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers\Images\ID2
Jest też „plik właściwości motywu niestandardowego”, który zawiera również sekcję „[SlideShow]”, która wygląda jak Base64:
C:\Users\Scott\AppData\Local\Microsoft\Windows\Themes\Custom.theme
windows-8
desktop-customization
Scott Bennett-McLeish
źródło
źródło
Odpowiedzi:
Dwa poniższe klucze rejestru przechowują oryginalną ścieżkę bieżącego obrazu tapety:
Są w formacie Unicode, po ich zdekodowaniu uzyskamy pełną ścieżkę do bieżącego obrazu tapety.
źródło
[System.Text.Encoding]::Unicode.GetString($bytes[24..($bytes.length-1)])
zakładając, że$bytes
zawiera wartość klucza$bytes=(New-Object -ComObject WScript.Shell).RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache_000"); $path=([System.Text.Encoding]::Unicode.GetString($bytes[24..($bytes.length-1)]) -split "\0")[0]
źródło
Sprawdź wartość
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
REG_SZ (ciąg). Spowoduje to wyświetlenie ścieżki do aktualnie używanego pliku TranscodedWallpaper.jpg.źródło
W systemie Windows 8 lub nowszym możesz uruchomić ten plik vbs:
https://gist.github.com/raveren/ab475336cc69879a378b
Lub użyj tego skryptu autohotkey:
http://www.autohotkey.com/board/topic/111813-open-current-wallpaper-under-mouse-in-windows-8/
Oba stworzone przeze mnie.
źródło
W Windows 8 i 8.1 (i podobno 10), jeśli ustawiłeś tapetę z Windows Picture Viewer (otwierając zdjęcie w Viewer i klikając „Ustaw jako tapetę pulpitu” w menu kontekstowym), jego lokalizacja będzie
źródło
W mojej sytuacji mam olbrzymi folder zdjęć, przez które przechodzą moje tapety. Nudzę się po pewnym czasie i chcę je usunąć, a czasem po prostu zastanawiam się, jaka jest nazwa obrazu, ponieważ może zawierać opis obrazu.
Zbudowałem 2 skrypty na podstawie powyższej opinii - jeden, aby uzyskać bieżącą ścieżkę obrazu, a drugi, aby ją usunąć. Testowałem to tylko w systemie Windows 10.
Uzyskaj ścieżkę obrazu (getwallpaper.ps1)
Usuń obraz (deletewallpaper.ps1)
źródło
C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Themes
.TranscodedWallpaper
<NAME>.JPG
źródło