Fórum Atualizar Reg (regedit) a partir de um arquivo .reg. #372212

13/07/2009

0

Amigos, como faço a partir da minha aplicação pegar um arquivo
Sistema.Reg

Abri-lo atualizando as chaves no registro do windows ?


Pelo CMD do XP a linha de comando é:

regedit.exe /s ¬systemdrive¬\Progs\Sistema.reg


Como faço isso no delphi ?


Thiagopedro

Thiagopedro

Responder

Posts

14/07/2009

.lg.

já tentou usar o ShellAPI para executar esse comando!?
Talvez se chamar o [color=darkblue:b06e443d1a]cmd[/color:b06e443d1a] pelo ShellAPI passando o comando como parâmetro... ainda não testei, mas tai o codigo:
ShellExecute (0, Nil, Comando, Parametros, Nil, SW_ShowMaximized);
no lugar do [color=indigo:b06e443d1a]Comando[/color:b06e443d1a] vc chama o [color=darkblue:b06e443d1a]CMD[/color:b06e443d1a].

Não fiz um teste, pois estou um pouco ocupado. mas [color=darkred:b06e443d1a]se der[/color:b06e443d1a] eu faço um teste e volto a postar.


Responder

Gostei + 0

14/07/2009

Thiagopedro

já tentou usar o ShellAPI para executar esse comando!? Talvez se chamar o [color=darkblue:8dfa02f913]cmd[/color:8dfa02f913] pelo ShellAPI passando o comando como parâmetro... ainda não testei, mas tai o codigo:
ShellExecute (0, Nil, Comando, Parametros, Nil, SW_ShowMaximized);
no lugar do [color=indigo:8dfa02f913]Comando[/color:8dfa02f913] vc chama o [color=darkblue:8dfa02f913]CMD[/color:8dfa02f913]. Não fiz um teste, pois estou um pouco ocupado. mas [color=darkred:8dfa02f913]se der[/color:8dfa02f913] eu faço um teste e volto a postar.



Boa intenção!

A questão é se eu for usar de alguma forma o CMD eu chamaria logo o .bat
Mas o que quero é fazer essa operação via aplicação, sem chamar o CMD.
Sei que isso é possível, mas no momento agora não estou sabendo fazer.

Certamente nesse fórum tem pessoas com inúmeras experiências que pode ajudar.


Responder

Gostei + 0

14/07/2009

Emerson Nascimento

tente assim:
ShellExecute(0, Nil, ´regedit.exe´, ´/s ¬systemdrive¬\Progs\Sistema.reg´, Nil, SW_ShowMaximized);

ou assim:
ShellExecute(0, Nil, ´regedit.exe /s ¬systemdrive¬\Progs\Sistema.reg´, Nil, Nil, SW_SHOWNORMAL);


Responder

Gostei + 0

05/08/2009

Thiagopedro

O que deu certo foi o seguinte:

var
csApp, csParams : PChar;
Str: String;
begin

csApp := ´regedit´;
Str := ´/s C:\Registro.reg´;
csParams := PChar(Str) //converte a var string para pchar

ShellExecute(0,
Nil,
csApp,
csParams,
Nil,
SW_HIDE);


Mas só funciona se o arquivo estiver no c:\
Porque não consigo fazer funcionar se o arquivo estiver por exemplo:

var
csApp, csParams : PChar;
Str: String;
begin

csApp := ´regedit´;
Str := ´/s C:\Arquivos de programas\Registro.reg´;
ou
Str := ´/s ´ + extractfiledir(Application.ExeName)+´\Registro.reg´;

????


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar