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