Fórum Dúvida Cruel #155235

16/04/2003

0

Gostaria de saber o seguinte.
Distribuí um aplicativo criado por mim. Esse aplicatico gera arquivos que só ele pode ler.... Como faço para que quando o usuário terminar a instalação do meu aplicativo, automaticamente os arquivos com a extensão padrão dele, seja associado a ele. Por Exemplo, quando instalamos o winzip, ao terminar a instalação, é perguntado que tipos de arquivos desejamos associar ao winzip. Logo sempre que clicamos em um arquivo .zip(por exemplo) será aberto o winzip...

Por favor, me ajudem..... :cry: :oops:


Grato.


Albert Sena Tanure


Galouco

Galouco

Responder

Posts

17/04/2003

Carnette

Gostaria de saber o seguinte. Distribuí um aplicativo criado por mim. Esse aplicatico gera arquivos que só ele pode ler.... Como faço para que quando o usuário terminar a instalação do meu aplicativo, automaticamente os arquivos com a extensão padrão dele, seja associado a ele. Por Exemplo, quando instalamos o winzip, ao terminar a instalação, é perguntado que tipos de arquivos desejamos associar ao winzip. Logo sempre que clicamos em um arquivo .zip(por exemplo) será aberto o winzip... Por favor, me ajudem..... :cry: :oops: Grato. Albert Sena Tanure


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


Responder

Gostei + 0

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

Aceitar