2015-10-07 154 views
0

請再次需要您的幫助。我想在註冊表中寫入十六進制條目。我們應該怎麼做?我需要一個功能在Code部分。使用Inno Setup Pascal腳本將二進制數據寫入註冊表

這是我做的:

procedure ADDRegistry; 
begin 
    RegWriteDWordValue(HKLM64,'SYSTEM\CurrentControlSet\services\FIDTPU\Parameters', 'CalibMode', 0); 

    RegWriteBinaryValue(HKLM64,'SYSTEM\CurrentControlSet\services\FIDTPU\Parameters', 'Caldata9' + 
    #7c#17#17#01#26#08#1f#0f#50#02#cf#08#40#0f#f7#13#f6#01#26#1f#f7#01#6b#27#e7#1d#81#15#54#00#27#df#2d#06#dd#2b#e2#1d#61#17#56#00#18#9f#af#01#df#2b#bd#1d#49#19#b3#01#0d#bf#3b#03#87#2d#c6#1d#c9#10#cc#03#19#7f#7d#01#d9#2d#ae#1d#f9#13#54#00#34#5f#03#02#6b#2e#aa#1d#6f#14#54#00#30#9f#55#00#6b#2e#9c#1d#65#17#e5#02#34#df#b3#01#e9#2f#99#1d); 
end; 

RegWriteDWordValue作品,但RegWriteBinaryValue沒有。

十六進制原來的註冊表項是:

「Caldata9」=十六進制:7C,17,17,01,26,08,1f,0F,50,02,CF,08,40, 0f,f7,13,f6,01,26,1f,f7,\ 01,6b,27,e7,1d,81,15,54,00,27,df,2d,06,dd,2b,e2, 1d,61,17,56,00,18,9f,af,01,\ df,2b,bd,1d,49,19,b3,010,0d,bf,3b,03,87,2d,c6, 1d,c9,10,cc,03,19,7f,7d,01,d9,\ 2d,ae,1d,f9,13,54,00,34,5f,03,02,6b,2e,aa, 1d,6f,14,54,00,30,9f,55,00,6b,2e,\ 9c,1d,65,17,e5,02,34,df,b3,01,e9,2f,99, 1d

我該怎麼做?

非常感謝您的幫助。

回答

0

在帕斯卡在#dd,所述dd是字符的一個十進制表示,而不是十六進制。所以#7c是不是你所想,它甚至不會編譯。

要使用十六進制表示,請使用#$hh

另請注意,在'Caldata9'之後應該有一個逗號,而不是加號。

RegWriteBinaryValue(
    HKLM64, 'SYSTEM\CurrentControlSet\services\FIDTPU\Parameters', 'Caldata9', 
    #$7c#$17#$17#$01...); 
+0

Ahhhhh。非常感謝。你是我的英雄!我測試它。 – DOC

+0

對不起。我是新手。我現在就完成了。我會好起來的。 ;-) – DOC

相關問題