Ver Mensaje Individual
  #1  
Antiguo 11-04-2004
verm83 verm83 is offline
Miembro
 
Registrado: nov 2003
Posts: 28
Reputación: 0
verm83 Va por buen camino
Eliminar registro de Windows

Hola de nuevo.
Me interesaría borrar un registro de Windows, dentro de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\, para que cierta aplicación arranque o no junto con Windows. Para ello he usado la siguiente función:

Código:
procedure TvPrograma.abrirEnInicio(iOpcion:integer);
var
    Registro:TRegistry;
begin
    // Crea una clave en el registro
    Registro:=TRegistry.create;
    Registro.RootKey:=HKEY_LOCAL_MACHINE;
    // Según iOpcion, borramos o añadimos la clave
    case iOPcion of
        0: if Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\',FALSE) then
               Registro.WriteString('MiPrograma','');
        1: if Registro.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',FALSE) then
               Registro.WriteString('MiPrograma',ExtractFilePath(ExpandFileName(ParamStr(0)))+'MiPrograma.exe');
    end;
    Registro.Destroy;
end;
Como se ve, cuando me interesa eliminarla (pasándole 0 a la función), lo que realmente hace es establecer la ruta a una cadena vacía. Esto es así porque DeleteKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MiPrograma') no me funcionó. ¿Alguien sabe por qué? ¿Cómo podría hacerlo? No me convence establecer la ruta a una cadena vacía.

Gracias anticipadas.
__________________
IncestoCanibal.com
Responder Con Cita