| **Navigation:**  [[introduction.htm|Language Reference]] > 13 - Built-in Functions >====== GETREGSUBKEYS (Collect Windows registry sub-key names) ====== | [[getreg get windows registry entry .htm|{{btn_prev_n.gif|Previous page}}]][[introduction.htm|{{btn_home_n.gif|Return to chapter overview}}]][[getregvalues collect windows registry key values .htm|{{btn_next_n.gif|Next page}}]] | | || **GETREGSUBKEYS**(//root//, //keyName//, //subkeyQueue//) {{blk2blue.jpg|blk2blue.jpg}} | **GETREGSUBKEYS** | Collect names of sub-keys for a given registry key. | | //root// | A LONG integer, variable or expression that contains the root section of the registry from which to obtain the value. Valid values for this are defined in equates.clw and are as follows: | | | **REG_CLASSES_ROOT** | | | **REG_CURRENT_USER** | | | **REG_LOCAL_MACHINE** | | | **REG_USERS** | | | **REG_PERFORMANCE_DATA** | | | **REG_CURRENT_CONFIG** | | | **REG_DYN_DATA** | | //keyName// | A STRING constant, variable or expression that contains the key name of the key whose value is to be queried. This may contain a path separated by backslash '\' characters. | | //subkeyQueue// | A reference to a QUEUE that holds the values of the sub-keys //keyName.// | The** GETREGSUBKEYS** function returns the names of all sub-keys for a given registry key to a referenced QUEUE. If the requested entry does not exist, an empty string is returned. **Vista and Clarion Built-in Registry Functions** On Vista, a (non-elevated) app can READ the registry key HKLM (local machine) with no problems, but as far as writing to the Registry it needs to use HKCU (current user). If you code sign your executable and run with elevated privileges then you can write to HKLM. **Example:** **  PROGRAM** **  MAP** **  END** **  INCLUDE('EQUATES')** **MyQueue             QUEUE,PRE(my)** **RegValues               STRING(40)** **                    END** **  CODE** **  ** **   GETREGSUBKEYS(REG_CURRENT_USER,'Control Panel\PowerCfg',MyQueue)     ** **        ** **   LOOP I# = 1 TO RECORDS(MyQueue)** **     GET(MyQueue,I#)         ** **     MESSAGE(my:RegValues) ** **   END** **See Also:** [[getreg get windows registry entry .htm|GETREG]], [[getregvalues collect windows registry key values .htm|GETREGVALUES]]