#/**
#         ogr ListRegistryKeys path_mountpoint str_registrytype str_key
#@brief   Lista los nombres de claves de una determinada clave del registro de Windows.
#@param   path_mountpoint  directorio donde está montado el sistema Windows
#@param   str_registrytype tipo de registro a leer
#@param   str_key          clave de registro
#@return  str_key ... - lista de claves de registro
#@exception OG_ERR_FORMAT    Formato incorrecto.
#@exception OG_ERR_NOTFOUND  Disco o particion no corresponden con un dispositivo.
#@note    registrytype = { default, sam, security, software, system, components }
#@warning Requisitos: chntpw, awk
#@warning La partición de Windows debe estar montada previamente.
#@version 0.9 - Adaptación para OpenGNSys.
#@author  Ramon Gomez, ETSII Universidad de Sevilla
#@date    2009-09-23
#*/ ##
# Variables locales.
local FILE FILENT FILEXP

# Si se solicita, mostrar ayuda.
if [ "$*" == "help" ]; then
    ogr Help "$FUNCNAME" "$FUNCNAME path_mountpoint str_registrytype str_key"
    return
fi
# Error si no se reciben 3 parámetros.
[ $# == 3 ] || ogr RaiseError $OG_ERR_FORMAT || return $?

# Camino del fichero de registro en NT/2000 o XP/Vista/7.
FILENT=$(ogr GetPath "/$1/winnt/system32/config/$2")
[ -f $FILENT ] && FILE="$FILENT"
FILEXP=$(ogr GetPath "/$1/windows/system32/config/$2")
[ -f $FLEHXP ] && FILE="$FILEXP"
[ ! -f $FILE ] && ogr RaiseError OG_ERR_NOTFOUND "$1,$2" && return $?

# Devolver la lista de claves de registro.
chntpw $FILE << FIN 2>/dev/null | awk 'BEGIN {FS="[<>]"} $1~/^  $/ {print $2}'
ls $3
q
FIN
