|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
AndreZc Membro Junior
Registrado: Quinta-Feira, 22 de Abril de 2010 Mensagens: 383 Localização: Rio de Janeiro
|
Enviada: Qui Jun 27, 2013 10:15 am Assunto: Como como uma chave no regedit? |
|
|
Bom dia!
Preciso fazer exatamente isso:
Código: | Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\Focus Backup]
"MUIVerb"="Restaurar backup aqui"
[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\Focus Backup\Command]
@="\"C:\\Users\\Focus\\Documents\\Projetos\\Backup e Restore\\Novo\\Focus_Backup.exe\" \"%1\"" |
Daí fiz isso, no Delphi:
Código: | SalvaStringNoRegistro('WinRAR.ZIP\shell\Focus Backup', 'MUIVerb',
'Focus Restaurar backup aqui', HKEY_CLASSES_ROOT);
SalvaStringNoRegistro('WinRAR.ZIP\shell\Focus Backup\Command', '@',
'\"' + DiretorioDoExecutavel + NomeDoExecutavel + '" "%1"',
HKEY_CLASSES_ROOT); |
Essa função, a SalvaStringNoRegistro, é assim:
Código: | procedure SalvaStringNoRegistro(Chave, NomeDoValor, Valor:String; srRootKey:HKEY=HKEY_LOCAL_MACHINE);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
try
with Reg do
begin
RootKey := srRootKey;
OpenKey(Chave, true);
try
WriteString (NomeDoValor, Valor);
except
ApagaValorDoRegistro(srRootKey, Chave, NomeDoValor);
WriteString (NomeDoValor, Valor);
end;
CloseKey;
end;
finally
Reg.Free;
end;
end; |
O resultado, porém, sai com uma aspa no @, bagunçando o inicio da segunda parte da string, o que, por si só, já bagunça o arquivo. Exportei o que o meu programa gera e fica assim:
Código: | Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\Focus Backup]
"MUIVerb"="Focus Restaurar backup aqui"
[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\Focus Backup\Command]
"@"="\\\"C:\\Users\\Focus\\Documents\\Projetos\\Backup e Restore\\Novo\\Focus_Backup.exe\" \"%1\"" |
O que eu faço? Obrigado! |
|
Voltar ao Topo |
|
|
cobaiaoo Colaborador
Registrado: Domingo, 1 de Abril de 2012 Mensagens: 1283
|
Enviada: Qui Jun 27, 2013 10:22 am Assunto: Re: Como como uma chave no regedit? |
|
|
amigo o q vc esta tentando fazer?
pelo q vi vc esta tentando usar o WINRAR so n entendi pra q
caso a necessiade for trabalhar com ZIP/RAR vc podia tentar usar o componente TPAbbrevia procure por ele em
http://www.activedelphi.com.br/forum/viewtopic.php?t=78274&start=0 _________________ I João 4:8 - "Aquele que não ama não conhece a Deus; porque Deus é amor." |
|
Voltar ao Topo |
|
|
AndreZc Membro Junior
Registrado: Quinta-Feira, 22 de Abril de 2010 Mensagens: 383 Localização: Rio de Janeiro
|
Enviada: Qui Jun 27, 2013 10:24 am Assunto: Re: Como como uma chave no regedit? |
|
|
Eu só quero que os arquivos de extensão zip, que abrem com o Winrar, tenham suporte ao meu programa. O regedit funcional faz exatamente o que eu quero. Eu só preciso gerá-lo. |
|
Voltar ao Topo |
|
|
Oldman Novato
Registrado: Domingo, 16 de Junho de 2013 Mensagens: 91
|
Enviada: Qui Jun 27, 2013 1:14 pm Assunto: |
|
|
Facilite o uso do Registro do windows utilizando apenas código puro. Tenta não usar a função, pois a mesma pode acabar confundindo.
Utilizando código apenas, sem função, para realizar o que deseja tente o seguinte:
Primeiro, você deseja acessar a raíz: HKEY_CLASSES_ROOT.
defina uma variável :
var reg: TRegistry;
Depois da clausula Begin digite:
reg:=Tregistry.create;
Agora defina a chave raiz a qual você deseja acessar:
reg.rootkey:= Hkey_Classes_Root;
Agora o que você precisa é abrir o caminho até a chave que você quer:
reg.OpenKey('WinRAR.ZIP\shell\Focus Backup',true);
Agora precisa gravar, nessa chave, um valor do tipo String, logo:
Reg.WriteString('MUIVerb','Restaurar backup aqui');
Tente fazer o mesmo com o outro código, porém, aparentemente, ele parece estar errado. Ao final de tudo lembre-se de fechar a chave: reg.CloseKey; e de liberar a memória: reg.free; |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|