Problemas ao criar chaves Windows Vista - 7
05/11/2009
0
Bom dia pessoal.
Achei em alguns post em outros sites, mas as dicas acabaram não dando muito certo.
É o seguinte: Alguem utiliza em seus programa rotinas para criar chaves no registro do windows Vista?
Pq, o teiomoso do windows vista, cria as chaves em HKey_Uses + um número pra lá de estranho e depois as minhas chaves. sendo que mando sempre criar na chave Hkey_Local_Machine. E quando vou recuperar os valores o sistema não encontra. Agora não sei se é porque ainda utilizo o Delphi 7, e ele é teoricamente incompatível com a rotina de criação de chaves.
Então peço aos amigos da comunidade, se alguem já passou por este problema e encontrou alguma luz no fim tunel, pq as rotinas que me enviaram, infelizmente não deram certo, continua na mesma.
Grato a todos.
Segue parte do código que utilizo para criar a chave no registro do windows.
reg := TRegistry.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('\Software\Synapse\SysContact\Rede', true) then
begin
try
// Recebe valores das chaves.
reg.WriteString('IpHost',JvIPAddress1.Text);
reg.WriteString('Host',Edit1.Text);
reg.WriteString('IpTerminal',JvIPAddress2.Text);
reg.WriteString('Terminal',Edit2.Text);
if (RadioButton1.Checked) then
// Tipo 0 = Servidor.
reg.WriteInteger('Tipo',0)
else
// Tipo 1 = Terminal.
reg.WriteInteger('Tipo',1);
reg.CloseKey;
except
on E:Exception do
Application.MessageBox('Falha ao registrar dados da Rede.','Erro', mb_ok + Mb_IconWarning);
end;
end;
finally
reg.Free;
Application.MessageBox('Dados adicionados ao sistema com sucesso.','Informação', mb_ok + Mb_IconInformation);
end;
Achei em alguns post em outros sites, mas as dicas acabaram não dando muito certo.
É o seguinte: Alguem utiliza em seus programa rotinas para criar chaves no registro do windows Vista?
Pq, o teiomoso do windows vista, cria as chaves em HKey_Uses + um número pra lá de estranho e depois as minhas chaves. sendo que mando sempre criar na chave Hkey_Local_Machine. E quando vou recuperar os valores o sistema não encontra. Agora não sei se é porque ainda utilizo o Delphi 7, e ele é teoricamente incompatível com a rotina de criação de chaves.
Então peço aos amigos da comunidade, se alguem já passou por este problema e encontrou alguma luz no fim tunel, pq as rotinas que me enviaram, infelizmente não deram certo, continua na mesma.
Grato a todos.
Segue parte do código que utilizo para criar a chave no registro do windows.
reg := TRegistry.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('\Software\Synapse\SysContact\Rede', true) then
begin
try
// Recebe valores das chaves.
reg.WriteString('IpHost',JvIPAddress1.Text);
reg.WriteString('Host',Edit1.Text);
reg.WriteString('IpTerminal',JvIPAddress2.Text);
reg.WriteString('Terminal',Edit2.Text);
if (RadioButton1.Checked) then
// Tipo 0 = Servidor.
reg.WriteInteger('Tipo',0)
else
// Tipo 1 = Terminal.
reg.WriteInteger('Tipo',1);
reg.CloseKey;
except
on E:Exception do
Application.MessageBox('Falha ao registrar dados da Rede.','Erro', mb_ok + Mb_IconWarning);
end;
end;
finally
reg.Free;
Application.MessageBox('Dados adicionados ao sistema com sucesso.','Informação', mb_ok + Mb_IconInformation);
end;
Valnei Reis
Curtir tópico
+ 0
Responder
Posts
06/11/2009
Rodrigo
Isto ocorre devido ao controle de usuário UAC que foi implementado a partir do Vista. Com UAC habilitado você não consegue gravar nenhum registro dentro da chave LOCAL_MACHINE e nem consegue criar arquivos nas pastas do Arquivos de Programas. Por questão de segurança, toda informação gravada nestes dois lugares será redirecionada para um registro (ou pasta) dentro do perfil do usuário atual.
Toda informação deve ser gravada no perfil do usuário. Caso queira realmente gravar em locais comuns a todos os usuário, terá de fazer a chamada "elevação de perfil" para que o Windows permita sua aplicação fazer escrita a estes locais. Porém será exibida ao usuário aquela tela de confirmação do Windows perguntando se o usuário permite o programa rodar como administrador (sempre aparece nas instalações de programas). E eu não sei como se faz a elevação do programa. Já procurei na internet e não achei a solução.
Responder
Clique aqui para fazer login e interagir na Comunidade :)