Put your registry into a table
It’s pretty easy to use Foxpro to examine the registry. Here’s some simple recursive code I whipped up to put registry keys into a table.
#define HKCU BITSET(0,31)+1
CLEAR
LOCAL oreg as "registry" OF HOME()+"samples\classes\registry.prg"
*cPath="Software\Microsoft\VisualFoxPro\9.0"
cPath="Software\Microsoft\Windows"
CREATE CURSOR reg (level i,key c(40),name c(40),value c(100))
SET ALTERNATE TO t
SET ALTERNATE on
enumreg(cPath,HKCU,0)
LOCATE
BROWSE LAST
SET ALTERNATE to
MODIFY COMMAND t.txt nowa
PROCEDURE enumreg(cPath as String,nhive as Integer,nLevel as Integer)
LOCAL i,oreg,aVals[1,1],aKeys[1]
oreg=NEWOBJECT("registry",HOME()+"samples\classes\registry.prg")
oreg.openkey(cPath,nhive)
IF oreg.EnumKeyValues(@aVals)=0
FOR i = 1 TO MIN(ALEN(aVals,1),100)
?REPLICATE(" ",nLevel),nLevel,cPath,aVals[i,1],"=",aVals[i,2]
INSERT INTO reg VALUES (nLevel,REPLICATE(" ",nLevel),aVals[i,1],aVals[i,2])
ENDFOR
ENDIF
IF oreg.EnumKeys(@aKeys)=0
FOR i = 1 TO ALEN(aKeys,1)
?REPLICATE(" ",nLevel),nLevel,cPath+aKeys[i]
INSERT INTO reg VALUES (nLevel,REPLICATE(" ",nLevel)+aKeys[i],"","")
enumreg(cPath+"\"+aKeys[i],nHive,nLevel+1)
ENDFOR
ENDIF
RETURN
59031
Comments
- Anonymous
May 05, 2005
Calvin,
Haven't used it yet, but there is gold in this code.
I suggest you add more comments to VFP code in your blog for those that may be new to VFP. Few of those here I am sure, but who knows.
Thank you for a great product. - Anonymous
May 05, 2006
IntroductionIf you haven't heard of WMI, you might want to skim my previous article on the subject (it's... - Anonymous
October 14, 2007
PingBack from http://foxpro.ntsl119.com/scr/archives/470