Handle hoRegistry Integer iError bOK bRetVal String sKey sData Get Create U_cRegistry to hoRegistry Move ("Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders") to sKey Set pfAccessRights of hoRegistry to KEY_READ Set phRootKey of horegistry to HKEY_LOCAL_MACHINE String sCommonAppData Get OpenKey of hoRegistry sKey to bOk If (bOK) Begin If (ValueExists(hoRegistry,"Common AppData")) Begin Get ReadString of hoRegistry "Common AppData" to sCommonAppData End Else Move "" to sCommonAppData Send CloseKey of hoRegistry End Else Begin Error 255 "Unable to read shell folders registry" End Send Destroy to hoRegistry If (trim(sCommonAppData)<>"") Begin String sConfigFile String sMyAppData Move (szPathAppend(sCommonAppData,"StarZen\TestApp")) to sMyAppData Move (szPathAppend(sMyAppData,"TestApp.config")) to sConfigFile If (SZFileExists(sConsejoConfig)) Begin Integer hoXML Get Create U_cXMLDOMDocument to hoXML If (not(hoXML)) Begin Error 255 ("Unable to create XML document") Function_Return (False) End Set psDocumentName of hoXML to sConfigFile Set pbAsync of hoXML to False Set pbValidateOnParse of hoXML to True Get LoadXMLDocument of hoXML to bOK If (not(bOk)) Begin Error 255 ("Unable to load XML document"+trim(sConfigFilefig)) Send Destroy to hoXML Function_Return (False) End // READ XML FILE Send Destroy to hoXML End End
Instead of using the registry it is recommended to store machine specific configuration data in the common appdata folder
first we use the registry to find the common appdata folder and then simply append a name for the company and also a name for the application. Then simply read an xml file in that folder for our configuration data