10 REM > RegList v1.00
   20 REM Recursively export a branch of registry values
   30 :
   40 REM 18Jul2008 v1.00 JGH: Initial release
   50 :
   60 INSTALL @lib$+"..\BLib\Close"
   70 INSTALL @lib$+"..\BLib\Number"
   80 INSTALL @lib$+"..\BLib\Win\Registry"
   90 :
  100 REM root$="Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
  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