segunda-feira, 21 de setembro de 2009

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('MeuProgramaDefaultIcon', 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('MeuProgramashellopencommand', 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('SoftwareMicrosoftOutlook Express5.0Default SettingsRecent 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('SOFTWAREMICROSOFTWINDOWSCURRENTVERSION',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('MICROSOFTWINDOWSCURRENTVERSIONRUN',false);
writestring('MeuPrograma', pchar(application.exename));
closekey;
end;
end;

Nenhum comentário:

Postar um comentário