Usando o Registro do Windows

 

Nesta matéria veremos como trabalhar com o registro do Windows utilizando suas "Api's". Esta matéria possui algumas técnicas que tratam o registro do Windows. Veja as dicas desta matéria:

·         Como definir, que uma certa extensão de arquivo seja aberta pelo seu programa.

·         Como escrever e ler algum valor no registro do Windows.

·         E o que escrever lá, para que sua aplicação seja inicializada junto com o Windows.

 

Vejamos então a primeira dica:

 

uses

    Windows, Messages .... Registry;  // Não esqueça de adicionar a Unit Registry na sessão uses...

 

procedure TForm1.Button1Click(Sender: TObject);

var

  Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  try

  with Reg do

  begin

    RootKey := HKEY_CLASSES_ROOT;

    OpenKey('\MeuPrograma', True);

    WriteString('', 'Arquivo do meu programa'); //Nome dado ao arquivo de sua aplicação. "Ex: Imagem Gif".

    CloseKey;

    OpenKey('MeuPrograma\DefaultIcon', True);

    // O primeiro parâmetro da linha de comando abaixo, é para escrever uma string vazia.

    // E o último parâmetro é para colocar o ícone da sua aplicação nos arquivos que serão abertos por ela.

    WriteString('', Application.ExeName + ',0');

    CloseKey;

    OpenKey('MeuPrograma\shell\open\command', True);

    WriteString('', Application.ExeName + ' "%1"');

    CloseKey;

    RootKey := HKEY_CLASSES_ROOT;

    OpenKey('\.ext', True); // Substitua o "ext" pela extensão que você deseja utilizar.

    WriteString('', 'MeuPrograma');

    CloseKey;

  end;

  finally

    Reg.CloseKey;

    Reg.Free;

  end;

end;

 

Acredito que você tenha conseguido aplicar esta técnica que lhe pode ser bastante útil. Vamos então ver a segunda dica, com ela você aprenderá como ler ou escrever um valor no registro do windows:

 

uses

  Windows, Messages .... Registry;  // Não esqueça de adicionar a Unit Registry na sessão uses...  

 

procedure button1.click(sender: Tobject);

var

  Reg: Tregistry;

begin

  Reg := Tregistry.create;

  with Reg do

  begin

    rootkey := HKEY_LOCAL_MACHINE;

    Openkey('Software\Microsoft\Outlook Express\5.0\Default Settings\Recent Stationery List',false);

    writestring('File0', 'Natureza.htm');

    writestring('File1', 'Dia Claro.htm');

    closekey;

  end;

end;

 

 No caso acima nós exemplificamos o que é escrever no registro, Neste exemplo nós trocamos de ordem os papeis de carta do Microsoft Outlook Explorer, embora você possa alterar qualquer registro já existente no "regedit". Se o que você que é incluir um registro e não editar, como nós fizemos, basta que no primeiro parâmetro da linha de comando "writestring", você coloque um nome para o seu registro, que não exista nesta pasta.         Agora no código abaixo veremos como ler um valor de um registro qualquer:

 

uses

   Windows, Messages .... Registry;  // Não esqueça de adicionar a Unit Registry na sessão uses...  

 

procedure button1.click(sender: Tobject);

var

  Reg: Tregistry;

  S: string;

begin

  Reg:=Tregistry.create;

  with Reg do

  begin

    rootkey := HKEY_LOCAL_MACHINE;

    Openkey('SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\',false);

    S := readstring('version');

    closekey;

  end;

  Edit.text := s;

end;

 

Neste caso nós pegamos o registro "version", que significa a versão do Windows,  colocamos o seu valor na variável "s" e depois à "jogamos" num "edit" qualquer, apenas para que possamos visualizá-la.

Agora que você já sabe como escrever no registro do Windows, veremos o que precisamos escrever, para colocar a nossa aplicação para ser inicializada junto com o Windows.

 

uses

  Windows, Messages .... Registry;  // Não esqueça de adicionar a Unit Registry na sessão uses...  

 

procedure button1.click(sender: Tobject);

var

  Reg: Tregistry;

begin

  Reg:=Tregistry.create;

  with Reg do

  begin

    rootkey := HKEY_LOCAL_MACHINE;

    Openkey('\MICROSOFT\WINDOWS\CURRENTVERSION\RUN',false);

    writestring('MeuPrograma', pchar(application.exename));

    closekey;

  end;

end;

 

Com mais essa dica, finalizo a nossa matéria que ensina a trabalhar com o registro do Windows. Espero que você tenha gostado e que lhe seja bastante útil.

 

Por Marco Antonio

marco@clubedelphi.net