10
20
30 :
40
50 :
60 INSTALL @lib$+"..\BLib\Close"
70 INSTALL @lib$+"..\BLib\Number"
80 INSTALL @lib$+"..\BLib\Win\Registry"
90 :
100
110 INPUT"Output file: "out$
120 INPUT"Key root: "root$
130 out%=OPENOUT(out$):IFout%=0:PRINT"Can't open '"out$"'":END
140 :
150 ON ERROR REPORT:PROCClose_All:PRINT" at line ";ERL:END
160 PROCRegistry_Init
170 hk%=reg_hkcu%
180 BPUT#out%,"REGEDIT 4"
190 PROCRegList(hk%,root$)
200 END
210 :
220 DEFPROCRegList(hk%,K$)
230 LOCAL index%,item$,header%
240 REPEAT
250 item$=FNRegistry_Vals(hk%, K$, index%)
260 IF item$<>"" THEN
270 type% =FNRegistry_Info( hk%, K$, item$)
280 IF type%=1 OR type%=2 OR type%=4 THEN
290 IF NOT header% THEN BPUT#out%,"":BPUT#out%,"[HKEY_CURRENT_USER\"+K$+"]":header%=TRUE
300 BPUT#out%,""""+item$+"""=";
310 IF type%=4 THEN
320 value%=FNRegistry_RdInt(hk%, K$, item$)
330 BPUT#out%,"dword:"+FNh0(value%,8)
340 ELSE
350 value$=FNRegistry_RdStr(hk%, K$, item$)
360 BPUT#out%,""""+value$+""""
370 ENDIF
380 ENDIF
390 ENDIF
400 UNTIL item$=""
410 :
420 index%=0
430 REPEAT
440 item$=FNRegistry_Keys(hk%, K$, index%)
450 IF item$<>"" THEN PROCRegList(hk%,K$+LEFT$("\",K$<>"")+item$)
460 UNTIL item$=""
470 :
480 ENDPROC