Registro do Windows

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Registro do Windows

Mensagem por carlos_dornelas »

Pessoal, alguém tem um exemplo simples de como fazer para CRIAR, INSERIR e ALTERAR um registro no windows?

Isso com xharbour .99.70 + minigui.

Grato

Antonio Carlos
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Registro do Windows

Mensagem por Itamar M. Lins Jr. »

Olhe na pasta exemplos da Minigui.
Voce esta usando uma Lib gráfica que é a mais complenta em exemplos que já vi.


Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Registro do Windows

Mensagem por sygecom »

De uma olhada no Help do xharbour pelas seguintes funções:
GetRegistry() Recupera o valor de uma entrada de registro
QueryRegistry() Verifica se uma determinada chave do Registro com valor especificado existe.
SetRegistry() Cria uma chave / valor par no registro.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: Registro do Windows

Mensagem por carlos_dornelas »

Itamar, vou verificar!

Sygecom, você teria o help para me enviar?

acdornelas@bol.com.br

Grato
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Registro do Windows

Mensagem por Maligno »

[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: Registro do Windows

Mensagem por carlos_dornelas »

Valeu Maligno!
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: Registro do Windows

Mensagem por carlos_dornelas »

Pessoal, preciso do include "Winreg.ch". Alguém pode me enviar ou anexar aqui?
MARINI
Usuário Nível 3
Usuário Nível 3
Mensagens: 288
Registrado em: 06 Jul 2004 08:06
Localização: Pindamonhangaba SP

Re: Registro do Windows

Mensagem por MARINI »

Tenho o WINREG.H. Se servir tá anexado.
Anexos
WINREG.H
(16.31 KiB) Baixado 99 vezes
Sds
Marini
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Registro do Windows

Mensagem por Itamar M. Lins Jr. »

Ola!
Usado exemplo da própria Minigui.

Código: Selecionar todos

#include "minigui.ch"

Procedure Main

   DEFINE WINDOW Form_1 ;
      AT 0,0 ;
      WIDTH 350 ;
      HEIGHT 300 ; 
      TITLE 'Registry Test' ; 
      MAIN 

      DEFINE MAIN MENU

         DEFINE POPUP "Test"
            MENUITEM 'Read Registry'   ACTION ReadRegistryTest()
            MENUITEM 'Write Registry'   ACTION WriteRegistryTest()
            SEPARATOR
            ITEM 'Exit'         ACTION Form_1.Release
         END POPUP

      END MENU


   END WINDOW 

   Form_1.Center
   Form_1.Activate

Return


Procedure ReadRegistryTest()

   MsgInfo ( GetRegistryValue( HKEY_CURRENT_USER, "Control Panel\Desktop", "Wallpaper" ) , "HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper" )

Return

Procedure WriteRegistryTest()
Local hKey := HKEY_CURRENT_USER
Local cKey := "Control Panel\Desktop"
Local cVar := "Wallpaper"
Local cValue

   If MsgYesNo ( 'This will change HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper.', 'Are you sure?' ) 

      cValue := InputBox ( '' , 'New Value:' , GetRegistryValue( hKey, cKey, cVar ) )

      If .Not. Empty (cValue)
         If .Not. SetRegistryValue( hKey , cKey , cVar , cValue  )
            MsgAlert( 'Write Registry is failure!' , 'Error' )
         Endif
      Endif

   Endif

Return
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: Registro do Windows

Mensagem por carlos_dornelas »

Pessoal, obrigado a todos pela atenção!

Acabei utilizando as funções do xharbour (.99.70). Seguem abaixo. Nos meus testes, funcionou no XP e no vista sem problemas (e olha que o vista é enjoado...) Se alguém puder testar em outro windows e puder nos retornar..

cRegPath='Software\Sua App'

If !SetRegistry( 4, cRegPath, 'variavel','valor que se deseja gravar')
msginfo('Não conseguir salvar no registro!','Aviso do Sistema')
endif

cVal:=GetRegistry( 4, cRegPath, 'variavel')
if empty(cVal)
msginfo("Não conseguiu repurar o conteúdo de 'variavel'")
return
endif

msginfo("A 'variavel' possui o valor de '+cVal)

OBS: O primeiro parâmetro de SetRegistry (4) indica para ser gravado em HKEY_LOCAL_MACHINE -->Software -->Sua App

Espero que lhes sejam úteis.
Responder