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

Post Reply
groiss
Posts: 206
Joined: Tue Sep 01, 2009 7:55 am
Location: Plasencia - ESPAÑA

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

Post 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
User avatar
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

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

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

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

Post by Antonio Linares »

José Luis,

Tienes un ejemplo en FWH\samples\TestRg32.prg
regards, saludos

Antonio Linares
www.fivetechsoft.com
groiss
Posts: 206
Joined: Tue Sep 01, 2009 7:55 am
Location: Plasencia - ESPAÑA

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

Post 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
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

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

Post 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

//---------------------------------------------------------------------------//
 
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
groiss
Posts: 206
Joined: Tue Sep 01, 2009 7:55 am
Location: Plasencia - ESPAÑA

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

Post 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
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

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

Post by Daniel Garcia-Gil »

Groiss...

ejecutaste el exe o compilaste el codigo con tu version de FW??
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
CARLOS ATUNCAR
Posts: 41
Joined: Thu Sep 17, 2015 11:40 pm

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

Post 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()
CARLOS ATUNCAR
Posts: 41
Joined: Thu Sep 17, 2015 11:40 pm

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

Post 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" )
User avatar
carlos vargas
Posts: 1421
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

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

Post 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.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Post Reply