Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema al escribir el registro de windows (https://www.clubdelphi.com/foros/showthread.php?t=68442)

pablopessoa 14-06-2010 19:18:01

Problema al escribir el registro de windows
 
Saludos a todos!
Les escribo por que ya no se que recurso agotar.
No puedo insertar una clave en el registro de windows y la verdad es qeu ya no se a qeu se pueda deber. Tengo este mismo codigo en otra aplicacion y anda muy bien. Hay algo de lo que no me estoy dando cuenta y recurro a su ayuda para ver si encontramos que pueda ser.

Primero, tengo declarado esta constante y este registro :
Código Delphi [-]
const
  Clave = '\Software\NombreAplicacion\';
type
  TOpciones = record
      codigo:string[100];   
      limiteuso: string[100];
      fechaInstalacion:string[100];
      IdVolumen:string[100];
    end;

y luego ejecuto el siguiente codigo :

Código Delphi [-]
reg:= TRegistry.Create;
reg.RootKey:=HKEY_CURRENT_USER;
if reg.OpenKey(Clave,False) then
  // ya esta la clave en el registro
    begin
       // Realizo operaciones con la clave        
    end
    else
    // no existe la clave en el registro
     begin         
            opcion.limiteuso:= '15';
            opcion.codigo:= '0000';
            opcion.fechaInstalacion:=DateToStr(Date);
            opcion.IdVolumen:=GetVolumeID('C');
            reg.CreateKey(Clave);
            reg.OpenKey(Clave,False);
            try
              reg2.WriteBinaryData('datos',opcion, SizeOf(opcion));
              reg2.CloseKey;
              reg2.Free;
            except
                ShowMessage('No se puede escribir en el registro de Windows');
            end;
      end;

Pero cuando se ejecuta " reg2.WriteBinaryData('datos',opcion, SizeOf(opcion));" tira un error y no me guarda la clave.
Alguno tiene idea de que puedo estar haciendo mal?
Muchas gracias y saludos!!!

maeyanes 14-06-2010 19:29:58

Hola...

Mis poderes adivinatorios no están funcionando bien, tengo mucha interferencia con aquello del mundial y que todo mundo quiere adivinar que selección será la campeona ( :p )

¿Podrías poner cual es el error que te "tira" Delphi?



Saludos...

pablopessoa 14-06-2010 19:49:58

Muchas gracias por responder y molestarte en leer mi post.
aca te indico el error que tira delphi ( por las dudas CodeGear delphi 2007)

Project aplicacion.exe raised exception class EAccessViolation with message 'Access violation at address 0042D8AA in module aplicacion.exe. ' Read of address 00000007

Ese es el error.
Saludos!

maeyanes 14-06-2010 20:13:32

Hola...

El error que obtienes es de acceso a la memoria y esto es por que tratas de usar un objeto que no está creado. De tu código veo que creas el objeto Reg pero al momento de escribir en el registro tratas de usar un objeto Reg2 el cual no veo que hayas creado.


Saludos...

pablopessoa 14-06-2010 22:15:43

Hay por dios! ese era el problema...
Siempre digo que cuando te pasas horas sentado en la pc... el error mas tonto lo pasas por alto.
Mil disculpas por hacerte perder tiempo en tremenda pavada.
Pero por otro lado te agradezco ya que sin un ojo ajeno no se cuanto tiempo podria haber pasado hasta que me diese cuenta.
Muchas gracias!!!

JULIPO 07-05-2012 05:07:24

Pero como se lee la clave que se escribio
 
Gracias de antemano por sus respuestas muy interesante esta entrada, pero creo hace falta para aclarar el proceso educativo que se explique como se lee la clave que se acaba de escribir .

Casimiro Notevi 07-05-2012 10:01:54

Estimado JULIPO, si tienes alguna duda, debes crear un nuevo hilo exponiéndola lo más claramente posible, recuerda nuestra guía de estilo, gracias, amigo :)


La franja horaria es GMT +2. Ahora son las 15:00:56.

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