#/**
#         ogr SetRegistryValue path_mountpoint str_registrytype str_valuename str_valuedata
#@brief   Establece el dato asociado a un valor del registro de Windows.
#@param   path_mountpoint  directorio donde está montado el sistema Windows
#@param   str_registrytype tipo de registro
#@param   str_valuename    nombre del valor de registro
#@param   str_valuedata    dato del valor de registro
#@return  (nada)
#@exception OG_ERR_FORMAT    Formato incorrecto.
#@exception OG_ERR_NOTFOUND  Disco o partición 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-24
#*/ ##
# 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 4 parámetros.
[ $# == 4 ] || 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 $?

# Cambiar el dato del valor de registro.
chntpw $FILE << FIN &>/dev/null
ed $3
$4
q
y
FIN
