Hmm..
Hab mal noch nen bisschen recherchiert:
Ab Windows 8 gibt es IDesktopWallpaper, damit ist es möglich, nicht nur 'das' Wallpaper-File auszulesen, sondern je Monitor.
Anbei ein Testprogram.
Habe mir hierfür die benötigten Deklarationen zusammen geschrieben, so das nicht die ganze
Win32 API für ShObjIdl eingebunden werden muss.
Zusätzlich habe ich deine Funktion für die Registry noch mal 'verschönert'
(Quelle WindowsAPI :
https://github.com/CMCHTPC/WindowsAPI )
(Das Testtool ist mit Delphi 6 erstellt und auf Windows 8.1 getestet worden)