já verificou se vc tem permissões de escrita no registro???
Se eu não me engano, em usuários que não são administradores no Windows XP é
negada a permissão de escrita no registro.
outro ponto que pode ser é que na minha máquina, o anti-vírus Kapersky
bloqueia quaquer atividade que grave bno registro a não ser que eu
pre-aprove a aplicação como que poderá gravar no registro.
Não sei se o antí virus que vc utiliza tem este recurso, mas valea pena
conferir

abs

Em 16/02/07, Ronaldo Assis Alves <[EMAIL PROTECTED]> escreveu:
>
>   Pessoal,
>
> Estou com um problema.
>
> Preciso gravar uma informação no registro do Windows sempre que for
> iniciar
> um programa, então fiz uma interface para que o usuário escolha o programa
> e
> quando confirmar, o meu aplicativo faça das devidas alterações no registro
> do Windows e em seguida chame o programa.
>
> Este é o código, ele compila e executa sem problemas, mas quando vou
> verificar no registro do windows, ele não muda nada...
>
> procedure TForm1.ListBox1KeyPress(Sender: TObject; var Key: Char);
>
> const
>
> Raiz : String = 'HKEY_LOCAL_MACHINE\SOFTWARE\Ambev\SIV';
>
> var
>
> Registro : TRegistry;
>
> f:textfile;
>
> a:String;
>
> begin
>
> a:=extractfilepath(paramstr(0))+'\siv.bat';
>
> system.assignfile(f,a);
>
> system.rewrite(f);
>
> if key=#13 then
>
> begin
>
> registro:=tregistry.Create;
>
> registro.OpenKey(raiz,true);
>
> if listbox1.ItemIndex=0 then
>
> begin
>
> registro.WriteString('DiretorioSistema','\\server\siv_server\');
>
> registro.WriteString('DirArquivoP','p:\Promax\int\1897004\gmr\pmt\');
>
> registro.WriteString('DirCargaMapeado','\\server\siv_server\Carga\');
>
> registro.WriteString('DirCopiaLocal','C:\SIV\Copiados\');
>
> registro.WriteString('DirDescargaLocal','C:\SIV\Descarga\');
>
> registro.WriteString('DirDescargaRemota','c:\SIV\Descarga\Remoto\');
>
> registro.WriteString('DirDescargaServer','\\server\siv_server\Descarga\');
>
> registro.WriteString('DirTransmitidos','C:\SIV\Transmitidos\');
>
> registro.WriteString('DirVersoesMapeado','\\server\siv_server\Versoes\');
>
> system.writeln(f,'start \\server\siv_server\default.hta');
>
> end
>
> else
>
> begin
>
> registro.WriteString('DiretorioSistema','\\promax\siv_server\');
>
> registro.WriteString('DirArquivoP','p:\Promax\int\1897104\gmr\pmt\');
>
> registro.WriteString('DirCargaMapeado','\\promax\siv_server\Carga\');
>
> registro.WriteString('DirCopiaLocal','C:\SIV\Copiados\');
>
> registro.WriteString('DirDescargaLocal','C:\SIV\Descarga\');
>
> registro.WriteString('DirDescargaRemota','c:\SIV\Descarga\Remoto\');
>
> registro.WriteString('DirDescargaServer','\\promax\siv_server\Descarga\');
>
> registro.WriteString('DirTransmitidos','C:\SIV\Transmitidos\');
>
> registro.WriteString('DirVersoesMapeado','\\promax\siv_server\Versoes\');
>
> system.writeln(f,'start \\promax\siv_server\default.hta');
>
> end;
>
> system.CloseFile(f);
>
> registro.CloseKey;
>
> registro.Free;
>
> winexec('siv.bat',sw_hide);
>
> sleep(2000);
>
> application.terminate;
>
> end;
>
> end;
>
> Alguém sabe se este método está furado ou se falta alguma coisa?
>
> Ou alguma dica de como mesclar um arquvo .REG sem confirmação já ajuda
>
> Obrigado
>
> Ronaldo Assis
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]

Responder a