Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-07-2011
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Registro del sistema malogrado

Holas,

Resulta que me hize una rutina para proteger mi sistema, rutinas con el registro del sistema pero al ejecutarla me malogro el registro del sistema y tuve que instalar el windows de nuevo, como puedo hacer una rutina para que no me malogre el registro.

En la rutina que hize encontre que estaba borrando una clave asigndada a una variable pero esta no contenia ningun valor osea la variable.

Pongo esto como precaucion para que a nadie mas le pase lo que me paso ok.

Aqui el codigo.......
Código Delphi [-]
 
 
 
// Escribir en el Registro del Sistema
procedure TForm_INIT.CREATE_LicPmt;
var
  Registry : TRegistry;
begin
  // Read_PROGRAM_NAME
  OFFSET_Key := UpperCase(SYSTEM.Copy(OFFSET_Key, 1, Length(OFFSET_Key) - 4));
  Encripted(OFFSET_Key);
  SYSTEM.Insert('\', OFFSET_Key, 1);
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_CLASSES_ROOT;
    FOUND_Key_00 := False;
    FOUND_Key_01 := False;
    FOUND_Key_02 := False;
    FOUND_Key_00 := Registry.OpenKey(OFFSET_Key, False);
    if not (FOUND_Key_00) then
      Registry.OpenKey(OFFSET_Key, True);
    FOUND_Key_01 := Registry.OpenKey(OFFSET_Key + OFFSET_Id1, False);
    if not (FOUND_Key_01) then
      Registry.WriteString('', '{22d3m61a-0000-0000-0001-je5ao6vl5gz5}');
    FOUND_Key_02 := Registry.OpenKey(OFFSET_Key + OFFSET_Id2, False);
    if not (FOUND_Key_02) then
      Registry.WriteString('', '{22d3m61a-0000-0000-0002-je5ao6vl5gz5}');
    Label_STATUSBAR_PWD.Caption := 'Licencia Permanente Creada...';
  finally
    Registry.Free;
  end;
end;

// Escribir en el registro del sistema
procedure TForm_INIT.CREATE_LicTmp;
var
  Registry : TRegistry;
begin
  // Read_PROGRAM_NAME
  OFFSET_Key := UpperCase(SYSTEM.Copy(OFFSET_Key, 1, Length(OFFSET_Key) - 4));
  Encripted(OFFSET_Key);
  SYSTEM.Insert('\', OFFSET_Key, 1);
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_CLASSES_ROOT;
    FOUND_Key_00 := False;
    FOUND_Key_01 := False;
    FOUND_Key_00 := Registry.OpenKey(OFFSET_Key, False);
    if not (FOUND_Key_00) then
      Registry.OpenKey(OFFSET_Key, True);
    FOUND_Key_01 := Registry.OpenKey(OFFSET_Key + OFFSET_Id1, False);
    if not (FOUND_Key_01) then
      Registry.WriteString('', '{22d3m61a-0000-0000-0001-je5ao6vl5gz5}');
    Label_STATUSBAR_PWD.Caption := 'Licencia Temporal Creada...';
  finally
    Registry.Free;
  end;
end;

// Borrar claves del resgistro del sistema
procedure TForm_INIT.DELETE_LicPmtTmp;
var
  Registry : TRegistry;
begin
  // Read_PROGRAM_NAME
  OFFSET_Key := UpperCase(SYSTEM.Copy(OFFSET_Key, 1, Length(OFFSET_Key) - 4));
  Encripted(OFFSET_Key);
  SYSTEM.Insert('\', OFFSET_Key, 1);
  Registry := TRegistry.Create;
  try
    Registry.RootKey := HKEY_CLASSES_ROOT;
    FOUND_Key_00 := False;
    FOUND_Key_01 := False;
    FOUND_Key_02 := False;
    FOUND_Key_01 := Registry.OpenKey(OFFSET_Key + OFFSET_Id1, False);
    if (FOUND_Key_01) then
      Registry.DeleteKey(OFFSET_Key + OFFSET_Id1);
    FOUND_Key_02 := Registry.OpenKey(OFFSET_Key + OFFSET_Id2, False);
    if (FOUND_Key_02) then
      Registry.DeleteKey(OFFSET_Key + OFFSET_Id2);
    FOUND_Key_00 := Registry.OpenKey(OFFSET_Key, False);
    if (FOUND_Key_00) then
      Registry.DeleteKey(OFFSET_Key);
    Label_STATUSBAR_PWD.Caption := 'Licencia Eliminada...';
  finally
    Registry.Free;
  end;
end;

// La Llamada sera asi...
  DELETE_LicPmtTmp;    // Elimina Claves
  CREATe_LicPmt ó      // Crea Clave Indefinida
  CREATe_LicTmp        // Crea Clave para 3 meses

// Esta es la assignacion que me olvide de hacer...
  OFFSET_Key := ExtractFileName(Application.ExeName);

// Y luego poner
  OFFSET_Key := UpperCase(SYSTEM.Copy(OFFSET_Key, 1, Length(OFFSET_Key) - 4));
  Encripted(OFFSET_Key);
  SYSTEM.Insert('\', OFFSET_Key, 1);

// Osea la variable OFFSET_Key no tenia valor alguno y esa variable la usaba para
// encontrar una clave y borrarla lo que me pregunto es porque en la pregunta de
// si existe la clave me malogro el registro del sistema

    FOUND_Key_01 := Registry.OpenKey(OFFSET_Key + OFFSET_Id1, False);
    if (FOUND_Key_01) then
      Registry.DeleteKey(OFFSET_Key + OFFSET_Id1);

// if FOUND_Key_01 = Falso) no debio haber borrado nada y parece que me malogro
// el registro y tuve que instalar de nuevo el windows.
// Como puedo hacer para que no me vuelva a pasar esto.
// Espero que me den una mano la verdad me dio mucho trabajo teneer que instalar
// Todo de nuevo.

Última edición por RebeccaGL fecha: 09-07-2011 a las 18:07:36.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Sistema!! einarcito Varios 0 11-10-2008 21:18:07
Recorrer base de datos registro por registro Goyo SQL 3 06-09-2006 21:40:47
Comparar un registro de un edit con un registro de una tabla en una consulta Damian666 SQL 10 01-10-2005 00:43:20
¿Borrado masimo o registro a registro? CHiCoLiTa SQL 0 21-03-2005 16:14:39
Leer un registro del sistema multistring Javi2 Varios 4 15-07-2004 11:09:45


La franja horaria es GMT +2. Ahora son las 20:24:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi