Here is a function I use to create registry entries. I think I based it on one I found in Foxpro Advisor. I use it to initialize PDF filenames, so I set the parameter defaults for that purpose. You can remove or replace the code that initializes missing parameters.
*====================================================================
FUNCTION SetRegValue(cRegKeyVal, cRegFolder, cRegKeyName) && Assign a registry key value
* Syntax: nResult = SetRegValue(cRegKeyVal, cRegFolder, cRegKeyName)
* Parameters: (required) cRegKeyVal - Key value to post
* (optional) cRegFolder - Folder containing key
* (optional) cRegKeyName - Key name
* Notes: 1. Uses REGISTRY.PRG
* 2. Customized for setting PDF filename, but will set any key
* Returns: nResult - Numeric error# from SetRegKey() - 0=Success
*====================================================================
#define REGFILE "K:\VFP\Lib\registry.prg" && Registry library
#DEFINE HKEY_CURRENT_USER -2147483647 && BITSET(0,31)+1
LOCAL oReg,nErrNum
IF !FILE(REGFILE)
MESSAGEBOX("SETREGVALUE: The required file "+REGFILE+" could not be found."

RETURN
ENDIF
if type("cRegKeyVal"

<>"C"
MESSAGEBOX("SETREGVALUE: The required key value parameter is missing"

RETURN
ENDIF
* Parameters
cRegFolder = iif(type("cRegFolder"

=="C",cRegFolder ,"Software\Adobe\Acrobat PDFWriter"

cRegKeyName = iif(type("cRegKeyName"

=="C",cRegKeyName,"PDFFileName"

oReg = NewObject("FoxReg",REGFILE) && Create registry object
return oReg.SetRegKey( cRegKeyName , ;
cRegKeyVal , ;
cRegFolder , ;
HKEY_CURRENT_USER)
Mike Krausnick