binary
Delphi のレジストリに値として保存されている GUID 値を読み取ろうとしています。BintoHexで読み込んでみると逆順になってしまいます。バイトをスワップする必要があるようですが、BinToHex でできると思いました。
このスレッドを参照しましたが、適切な解決策が見つかりません: Delphi でバイト配列を 16 進表現に変換する方法 それは小さな Eendian が原因のようです。
以下に、レジストリに保存されている GUID を示します。
これが私のコードです:
var
s : string;
buffer : pointer;
...
begin
getmem(buffer, 1024*1024);
....
reg.ReadBinaryData(iValueOfregistry, buffer^, 1024*1024);
....
bintohex(pointer(longint(buffer)+14), PChar(s), 32);
s の出力: 90E24D373F126545916439C4925E467B
GUID は FOLDERID_Downloads GUID である必要があります:
{374DE290-123F-4565-9164-39C4925E467B}
助けてください