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
[-]
procedure TForm_INIT.CREATE_LicPmt;
var
Registry : TRegistry;
begin
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;
procedure TForm_INIT.CREATE_LicTmp;
var
Registry : TRegistry;
begin
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;
procedure TForm_INIT.DELETE_LicPmtTmp;
var
Registry : TRegistry;
begin
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;
DELETE_LicPmtTmp; CREATe_LicPmt ó CREATe_LicTmp
OFFSET_Key := ExtractFileName(Application.ExeName);
OFFSET_Key := UpperCase(SYSTEM.Copy(OFFSET_Key, 1, Length(OFFSET_Key) - 4));
Encripted(OFFSET_Key);
SYSTEM.Insert('\', OFFSET_Key, 1);
FOUND_Key_01 := Registry.OpenKey(OFFSET_Key + OFFSET_Id1, False);
if (FOUND_Key_01) then
Registry.DeleteKey(OFFSET_Key + OFFSET_Id1);