Page 1 of 1

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

PostPosted: 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  Expand view

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?

PostPosted: 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?

PostPosted: 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?

PostPosted: 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?

PostPosted: 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  Expand view

#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?

PostPosted: 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?

PostPosted: 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?

PostPosted: 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.posting.php?mode=reply&f=6&t=18412&sid=5eddcc58c553f9a33d9dd863ae52d257#


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?

PostPosted: 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.posting.php?mode=reply&f=6&t=18412&sid=5eddcc58c553f9a33d9dd863ae52d257#


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?

PostPosted: 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 angunos casos 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.

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

PostPosted: Fri Jun 25, 2021 11:42 am
by leandro
Hola buenos días para todos

Estoy haciendo pruebas con el tema del registro de información en el regedit del windows, pero hasta ahora sin éxito, compile el ejemplo que viene en los samples de fw testrg32.prg, lo ejecute como administrador pero aun así no funciona.

Intente con solución que propone nuestro amigo CARLOS ATUNCAR, aunque funciona, si ingreso de manera manual al regedit no logro ver la información registrada en el nodo WOW6432Node.

Alguien sabe si hay que hacer algo diferente para que se pueda realizar este registro, de antemano gracias.

PDTA. hice pruebas en windows10 y windows8.

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

PostPosted: Fri Jun 25, 2021 6:00 pm
by cnavarro
La aplicación se está ejecutando con permisos de Administrador?

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

PostPosted: Mon Jun 28, 2021 4:32 pm
by carlos vargas
Como indica Cristobal..

En windows 8, 8.1,10 y no estoy seguro si en windows 7, la escritura en el registro es una operacion que solo los nivel admin pueden hacer,
por eso si nuestra app desea hacer un cambio en el registro, esta debe ser ejecutada con permisos de admin.
caso contrario, no hara ningun cambio. :-(

salu2
carlos vargas