Ir para conteúdo
Fórum Script Brasil
  • 0

Como Excluir/alterar Chaves De Registro Do Windows


Dracom

Pergunta

Olá

Gostaria de saber como alterar excluir e incluir novas chaves de registro no windows atraves de um programa que use linhas de codigo em C ou C++. Por favor postem uma linha de codigo bem explicada e com exemplos.

Eu realmente agradeço a sua valioza ajuda.

Obrigado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Opa!

E aí, man? Beleza?

Para criar uma nova chave no registro você pode usar a função RegCreateKey da seguinte forma:

...
HKEY hk;
DWORD disp;

RegCreateKeyEx(
    HKEY_LOCAL_MACHINE,    // chave do registro onde a sua será criada
    "SYSTEM\\CurrentControlSet\\tesste",    // caminho, no registro, da sua sub-chave
    0,    // mantenha assim
    NULL,    // mantenha assim
    REG_OPTION_NON_VOLATILE,    // a informação é mantida quando o sistema é reiniciado
    KEY_ALL_ACCESS,    // define tipo de acesso (nesse caso total)
    NULL,    // mantenha assim
    &hk,    // armazena em "hk" um handle para a chave criada
    &disp    // armazena em "disp" o tipo de operação realizada
);
...
Se a sub-chave já existir, a função apenas abre essa chave (e armazena em disp o valor predefinido REG_OPENED_EXISTING_KEY). Caso contrário, cria a nova sub-chave (armazenando em disp o valor REG_CREATED_NEW_KEY). Para criar um novo valor dentro de uma chave pode-se usar a função RegSetValueEx. Por exemplo, digamos que queremos criar um valor na chave que acabamos de criar. A informação que queremos armazenar está na variável valor, que é uma string com terminador nulo. Então ficará assim:
...
LPTSTR valor = "Opa!";

RegSetValueEx(
    hk,    // nosso handler que foi inicializado em RegCreateKeyEx
    "ValorAdicionado",    // nome do valor
    0,    // mantenha assim
    REG_SZ,    // tipo de dados do registro correspondente a strings com terminador nulo
    ( LPBYTE )valor,     // informação a ser armazenada, com coerção para o tipo LPBYTE
    ( lstrlen( valor ) + 1 ) * sizeof( TCHAR )    // tamanho dos dados
);
...
Para deletar um valor:
...
RegDeleteValue(
    hk,    // nosso handler
    "ValorAdicionado"    // nome do valor a ser deletado
);
...
Para deletar uma chave:
...
RegDeleteKey(
    HKEY_LOCAL_MACHINE,    // chave onde está a nossa sub-chave
    "SYSTEM\\CurrentControlSet\\tesste",    // caminho da sub-chave
);
...

Para ter informações mais precisas, visite o seguinte link: http://msdn2.microsoft.com/en-us/library/ms724871.aspx.

Há outros métodos mais "sofisticados" de acessar o registro também. Por exemplo, com a MFC: http://www.cst.nait.ab.ca/cst/staff/gkoesl...ed/Registry.htm. Ou com .NET:

http://www.codeproject.com/dotnet/csregistry01.asp.

Valeu, man!

Boa sorte!

Editado por Wicker Man
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...