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]