Page 1 of 1

Problema al escribir en el registro ¿falla la clase treg32?

Posted: Wed Mar 24, 2010 9:14 am
by groiss
Amigos:
Cuando intento crear uno valores en el registro de windows, con el código que muestro aquí:

Code: Select all

if regopenkey(HKEY_CURRENT_USER,"SOFTWARE\Medida\Etiqueta",@nhandle)<>0
    regcreatekey(HKEY_CURRENT_USER,"SOFTWARE\Medida\Etiqueta",@nhandle)
    regsetvalue(nhandle,"","The default value")
    regsetvalue(nhandle,"cmetiq01","00")
    regsetvalue(nhandle,"cmetiq02","00")
    regsetvalue(nhandle,"cmetiq03","00.00")
    regsetvalue(nhandle,"cmetiq04","00.00")
    regsetvalue(nhandle,"cmetiq05","00.00")
    regsetvalue(nhandle,"cmetiq06","00.00")
    regsetvalue(nhandle,"cmetiq07","00")
    regsetvalue(nhandle,"cmetiq08","00")
    regclosekey(nhandle)
endif
 
Lo único que obtengo en el registro es la clave HKEY_CURRENT_USER,"SOFTWARE\Medida\Etiqueta, pero ninguno de los valores introducidos es escrito.

Hay alguna forma de hacerlo?, ya he probado usando la clase treg32, con un resultado similar.
Un saludo y muchas gracias
José Luis

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Thu Mar 25, 2010 4:09 pm
by Lautaro
Hola,

Enlaza en tu proyecto la clase treg32 que esta en fwh\source\classes , no se en que version la que venia en la lib no estaba bien.


Saludos,

Lautaro Moreira

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Thu Mar 25, 2010 4:12 pm
by Antonio Linares
José Luis,

Tienes un ejemplo en FWH\samples\TestRg32.prg

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Fri Mar 26, 2010 9:30 am
by groiss
Gracias a ambos por las respuestas:
Lautaro, he seguido tu consejo y el problema persiste.
Antonio, cuando me he decidido a poner el post, era por que ya lo había probado todo, incluso los ejemplos, obteniendo el mismo resultado, me pone la clave en el registo, pero no escribe los valores, en ningún equipo de los que he probado, todos con XP professional.
Gracias y un saludo.

Jose Luis

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Fri Mar 26, 2010 11:58 am
by Daniel Garcia-Gil
Saludos Grois...


Te dejo un ejemplo usando la clase TReg32 de FWH y probado en winxp, usando la informacion que has suministrado

http://www.sitasoft.net/fivewin/samples/testrg32.rar

Image

Code: Select all

#include "FiveWin.Ch"

#define  HKEY_CURRENT_USER       2147483649 

//---------------------------------------------------------------------------//

function Main()

   LOCAL oReg, cName, uVar
   
   oReg = TReg32():New( HKEY_CURRENT_USER, "SOFTWARE\Medida\Etiqueta" )
   IF oReg:nError <> 0
      oReg = TReg32():Create( HKEY_CURRENT_USER, "SOFTWARE\Medida\Etiqueta" )
      oReg:Set( "","The default value")
      oReg:Set( "cmetiq01","00")
      oReg:Set( "cmetiq02","00")
      oReg:Set( "cmetiq03","00.00")
      oReg:Set( "cmetiq04","00.00")
      oReg:Set( "cmetiq05","00.00")
      oReg:Set( "cmetiq06","00.00")
      oReg:Set( "cmetiq07","00")
      oReg:Set( "cmetiq08","00")
      IF oReg:nError == 0
         oReg:Close()
         oReg := TReg32():New( HKEY_CURRENT_USER, "SOFTWARE\Medida\Etiqueta" )
      ENDIF
   ENDIF

   uVar := oReg:Get( "" ); MsgStop( uVar )
   uVar := oReg:Get( "cmetiq01" ); MsgStop( "cmetiq01: " + uVar )
   uVar := oReg:Get( "cmetiq02" ); MsgStop( "cmetiq02: " + uVar )
   uVar := oReg:Get( "cmetiq03" ); MsgStop( "cmetiq03: " + uVar )
   uVar := oReg:Get( "cmetiq04" ); MsgStop( "cmetiq04: " + uVar )
   uVar := oReg:Get( "cmetiq05" ); MsgStop( "cmetiq05: " + uVar )
   uVar := oReg:Get( "cmetiq06" ); MsgStop( "cmetiq06: " + uVar )
   uVar := oReg:Get( "cmetiq07" ); MsgStop( "cmetiq07: " + uVar )
   uVar := oReg:Get( "cmetiq08" ); MsgStop( "cmetiq08: " + uVar )


   oReg:Close()

return nil

//---------------------------------------------------------------------------//
 

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Fri Mar 26, 2010 12:28 pm
by groiss
Daniel, muchas gracias por tu preocupación, pero obtengo con tu código un resultado simila con FWH 9.09.
El mismo código en 16 bits y clipper funcionaba.
Un saludo
José Luis

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Fri Mar 26, 2010 12:43 pm
by Daniel Garcia-Gil
Groiss...

ejecutaste el exe o compilaste el codigo con tu version de FW??

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Thu Oct 27, 2016 6:16 pm
by CARLOS ATUNCAR
estoy tratando de hacer este registro pero no hace nada, con Windows 10 alguna sugerencia.http://fivetechsupport.com/forums/posti ... 63ae52d257#


oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SOFTWARE\CaSoft\WinConta Pro" )
oReg:Set( "A path" , cGet[6] )
oReg:Set( "A version", "2016-12.01" )
oReg:Set( "A install", date() )
oReg:Set( "A serie" , cGet[4] )
oReg:close()

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Thu Oct 27, 2016 6:56 pm
by CARLOS ATUNCAR
CARLOS ATUNCAR wrote:estoy tratando de hacer este registro pero no hace nada, con Windows 10 alguna sugerencia.http://fivetechsupport.com/forums/posti ... 63ae52d257#


oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SOFTWARE\CaSoft\WinConta Pro" )
oReg:Set( "A path" , cGet[6] )
oReg:Set( "A version", "2016-12.01" )
oReg:Set( "A install", date() )
oReg:Set( "A serie" , cGet[4] )
oReg:close()


En Windows 10 funciona poniendo esta direccion

oReg := TReg32():Create( HKEY_LOCAL_MACHINE, "SOFTWARE\WOW6432Node\CaSoft\WinConta Pro" )

Re: Problema al escribir en el registro ¿falla la clase treg32?

Posted: Fri Oct 28, 2016 1:38 pm
by carlos vargas
Recordar que el proceso de escribir en el registro requiere elevar permisos de admin en windows 7 o superior,
antes en xp el proceso no lo requería, dado que por default el usuario tenia nivel de admin, pero desde win7 ya no es asi,
y para que la app pueda modificar el registro deben de indicarle a la misma que se ejecute como administrador.
incluso el _ tenemos programas como antivirus que protegen el registro, todo esto lo deben valida antes.
lo ideal es crear un archivo .reg de prueba, para ver si es posible agregar info al registro sin problemas, y ya probarlo en nuestra app.