Dica retirado do DTDelphi2.6

Inclua na seção uses: Registry

Problema:

Criei um editor de textos no Delphi. Agora gostaria que o Windows 
Explorer usasse este editor para abrir arquivos com a extensão .dpg e 
.dan. Como fazer?

Solução:

Para fazer isto será necessária a criação de algumas chaves no Registro 
do Windows. O exemplo abaixo cria todas as chaves necessárias.

- Coloque um TButton e no evento OnClick dele coloque o código abaixo:


            procedure TForm1.Button1Click(Sender: TObject);


            var


              Reg: TRegistry;


            begin


              Reg := TRegistry.Create;


              try


              Reg.RootKey := HKEY_CLASSES_ROOT;


              Reg.LazyWrite := false;


              { Define o nome interno (ArquivoDaniel) e uma legenda que
            aparecerá no Windows Explorer (Arquivo do Daniel) }


              Reg.OpenKey('ArquivoDaniel', true);


              Reg.WriteString('', 'Arquivo do Daniel');


              Reg.CloseKey;


            { Define o comando a ser executado quando abrir um arquivo
            pelo Windows Explorer (NomeDoExe %1). O símbolo %1 indica
            que o arquivo a ser aberto será passado como primeiro
            parâmetro para o aplicativo - ParamStr(1). }


              Reg.OpenKey('ArquivoDaniel\shell\open\command', true);


              Reg.WriteString('', ParamStr(0) + ' %1'); { NomeDoExe %1 }


              Reg.CloseKey;


              { Define o ícone a ser usado no Windows Explorer:


              0 - primeiro ícone do EXE


              1 - segundo ícone do EXE, etc }


              Reg.OpenKey('ArquivoDaniel\DefaultIcon', true);


              Reg.WriteString('', ParamStr(0) + ',0'); { 0 = primeiro
            ícone }


              Reg.CloseKey;


              { Define as extensões de arquivos que serão abertos pelo
            meu aplicativo }


              { *.dpg }


              Reg.OpenKey('.dpg', true);


              Reg.WriteString('', 'ArquivoDaniel');


              Reg.CloseKey;


              { *.dan }


              Reg.OpenKey('.dan', true);


              Reg.WriteString('', 'ArquivoDaniel');


              Reg.CloseKey;


              finally


              Reg.Free;


              end;


            end;

- Coloque um TMemo;

- No evento OnShow do Form coloque o código abaixo:


            procedure TForm1.FormShow(Sender: TObject);


            begin


              { Se o primeiro parâmetro for um nome de arquivo
            existente... }


              if FileExists(ParamStr(1)) then


              { Carrega o conteúdo do arquivo no memo }


              Memo1.Lines.LoadFromFile(ParamStr(1));


            end;

*** Para testar ***

- Execute este programa;

- Clique no botão para criar as chaves no Registro do Windows;

- Feche o programa;

- Crie alguns arquivos com as extensões .dpg e .dan;

- Vá ao Windows Explorer e procure pelos arquivos criados;

- Experimente dar um duplo-clique sobre qualquer dos arquivos com uma 
das extensões acima.

Observações

Existem outros recursos que poderão ser configurados. Porém, para 
começar, este já é um bom exemplo.

:-)




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



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a