Boa tarde Walter!

Extraí a dica seguinte do "Dicas e Truques de Delphi" v. 2.8 Já usei uma vez 
fazendo algumas alterações e funcionou corretamente.

399 - Programar meu aplicativo para abrir arquivos a partir do Windows Explorer
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. 

Atte,
Ricardo.

Walter Maldonado Junior <[EMAIL PROTECTED]> escreveu:                           
    Pessoal, 
 
 Estou desenvolvendo um software que salva arquivos em um formato próprio. Eu
 gostaria de fazer com que o arquivo seja aberto pelo meu aplicativo quando o
 usuário clica nele no Windows. Tipo, quando vc abre um arquivo .doc o Word
 abre sozinho. Eu gostaria que quando alguém desse 2 cliques no arquivo ..xxx
 ele abrisse o meu programa e o arquivo para edição.
 
 Alguém sabe como se faz isso ou poderia me dar uma força?
 
 Muito Obrigado pela atenção
 
 Walter”
 
 Abraços
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
     
                               

       
---------------------------------
Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 

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

Responder a