レジストリにbinary
の値として格納されているGUID値をDelphiで読み取ろうとしています。 BintoHexで読むと、逆の結果になります。 バイトをスワップする必要があるようですが、BinToHexはそれをやると思いました。レジストリに格納されているGUID値を読み取る
私はこのスレッドに言及しましたが、私は適切な解決策を見つけることができません: how to convert byte array to its hex representation in Delphi それは少し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);
出力: 90E24D373F126545916439C4925E467B
GUIDはFOLDERID_Downloads GUIDする必要があります:
{374DE290-123F-4565-9164-39C4925E467B}
バイナリ形式で
GUIDは、バイナリレジストリ値に格納されている唯一のものではありません。だから、私はそれをバッファーで読み取って、そのバッファーの$ e位置でTGUIDを読み取らなければなりません。私はバイトからバイトへのコピーであるため、GUIDがバッファを(位置$ eに)移動させてもジョブを実行しないと思われます。本当?何をお勧めしますか? – user382591
「移動」はジョブを完全に行います。データを 'TGUID'にblitするだけで、ジョブが完了します。 'PGUID'へのキャストを使用して移動することなく実行できます。最新のアップデートはあなたにどのように表示されます。 –
David、あなたは私の教祖です – user382591