terça-feira, 23 de fevereiro de 2010

Registrando uma extensão de arquivo ao seu programa

Olá, caso você precise associar uma extensão de arquivo ao seu programa, use o código abaixo:

procedure TdfmCSConfigDB.RegistrarExtensao;
var
  _reg: TRegistry;
begin
  _reg := TRegistry.Create;
  try
    _reg.RootKey := HKEY_CLASSES_ROOT;
    _reg.LazyWrite := False;
    /// ////////////////////////////////////////////////////////////////////////
    _reg.OpenKey('CSConfigDB', True);
    _reg.WriteString('', 'Configurador de Banco do Contact Studio');
    _reg.CloseKey;
    /// /////////////////////////////////////////////////////////////////////////
    _reg.OpenKey('CSConfigDB\shell\open\command', True);
    _reg.WriteString('', ParamStr(0) + ' "%1"');
    _reg.CloseKey;
    /// /////////////////////////////////////////////////////////////////////////
    _reg.OpenKey('CSConfigDB\DefaultIcon', True);
    _reg.WriteString('', ParamStr(0) + ',0');
    _reg.CloseKey;
    /// /////////////////////////////////////////////////////////////////////////
    _reg.OpenKey('.csb', True);
    _reg.WriteString('', 'CSConfigDB');
    _reg.CloseKey;

  finally
    FreeAndNil(_reg);
  end;
end;

Com isso o Windows irá usar o ícone do seu programa para representar o arquivo, como no exemplo abaixo:


No meu caso, fizemos um editor de arquivo INI para guardar as configurações do acesso a banco de dados (SQLConnection). Portanto, ao dar dois cliques, abriu o programa:



Legal?

2 comentários:

WebMaster disse...

Bem legal a dica,realmente abre o programa quando clica no arquivo...Mas como eu faço pra quando abrir o arquivo seu conteudo aparecer no memo do programa?No caso,ele só abre o executável,mas não aparece o conteúdo.Aguardo sua resposta!:P

José Mário Silva Guedes disse...

Olá. Eu realmente deveria ter mencionado. A princípio, o nome do arquivo chamado você recuperará com ParamStr(1)

Minha lista de blogs