Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#17

AW: Wallpaper und Windows 8+

  Alt 13. Okt 2018, 09:17
Hmm..

Ich habe mir mal erlaubt, deine Routine zu korrigieren:

Delphi-Quellcode:
function GetWallpaperCache:WideString;
const
  CDataValue: string = 'TranscodedImageCache';
  CKeyName: string = 'Control Panel\Desktop\';
var
  regist: TRegistry;
  KeyExists: boolean;
  vSize : integer;
  arr: array of WideChar;
begin
  Result := '';
  regist := TRegistry.Create;
  try
    regist.RootKey := HKEY_CURRENT_USER;
    try
      KeyExists := regist.OpenKey(CKeyName, false);
      if (KeyExists) then
      begin
        vSize := regist.GetDataSize(CDataValue);
        if (vSize > 0) then
        begin
          SetLength(arr, vSize div 2);
          regist.ReadBinaryData(CDataValue, arr[0], vSize);
          Result := PWideChar(@Arr[12]);
        end;
      end;
    except
      regist.CloseKey;
    end
  finally
    regist.Free;
  end;
end;
Die ReadBinaryData enthalten offensichtlich ab dem Byte 24 einen WideString.
Dann sollte man diesen auch als dass verwenden, damit wir auch Unicode-Dateinamen erhalten

Hierbei scheint es sich eventuell um eine Bilderserie handeln zu können, da es noch den Registry-Eintrag 'TranscodedImageCount' gibt.
Konnte es jedoch noch nicht testen.

Ist wohl dann für SlideShows...
  Mit Zitat antworten Zitat