Registro do Windows (Apagar)

19/05/2003

7

Agluem sabe como faço para apagar alguns do registros do Windows
Pq coloquei o meu programa no iniciar do windows.. ele eu consegui apagar
tentei apagar outros mas não consegui.

Usei o seguinte código

var
Registry : TRegistry;
begin
Registry := TRegistry.Create;
Registry.RootKey := HKEY_LOCAL_MACHINE;
Registry.OpenKey(´\Software\Microsoft\Windows\CurrentVersion\Run´,False);
Registry.DeleteKey(´Teste´); //Só consegui deletar o meu, os outros não...
Registry.CloseKey;
end;
obrigado.


Responder

Posts

19/05/2003

Inutaishou

Cara peguei isso na internet a um tempo atrás:

Ao criar um objeto do tipo TRegistry, o root padrão é sempre o HKEY_CURRENT_USER. Para alterá-lo, utilize: r.RootKey := [root key desejado]; onde [root key desejado] é o root que se deseja conectar, como por exemplo HKEY_LOCAL_MACHINE. Então r.RootKey := HKEY_LOCAL_MACHINE conecta ao root diferente do padrão. Exemplo: unit Exemplo; interface uses SysUtils, WinTypes, WinProcs, Messages, Dialogs, Forms, Controls, Classes, StdCtrls, Registry; type // conjunto de tipos de valores TKeyType = (ktString, ktBoolean, ktInteger, ktCurrency, ktDate, ktTime); // função exemplo Function ReadAppKey(const Key: String; KeyType: TKeyType; DefValue: Variant): Variant; Procedure WriteAppKey(const Key: String; const Value: Variant; KeyType: TKeyType); implementation Function ReadAppKey(const Key: String; KeyType: TKeyType; DefValue: Variant): Variant; var r: TRegistry; begin // cria o objeto TRegistry r := TRegistry.Create; // conecta ao root diferente do padrão r.RootKey := HKEY_LOCAL_MACHINE; try // abre a chave (no root selecionado) // o segundo parâmetro True, indica que se a chave não existir, a operação de abertura poderá criá-la. r.OpenKey(´Software\´ + Application.Title, True); Result := DefValue; // testa se existe o valor que se deseja ler. // note que, para verificar a existência de chaves, utilizados KeyExists([chave]) e para verificar a existência de conjunto de //chaves de uma chave, utilizamos ValueExists([valor]) if r.ValueExists(Key) then begin case KeyType of // lê o valor da chave em formato String ktString: Result := r.ReadString(Key); // lê o valor da chave em formato Boolean ktBoolean: Result := r.ReadBool(Key); // lê o valor da chave em formato Integer ktInteger: Result := r.ReadInteger(Key); // lê o valor da chave em formato Currency (moeda) ktCurrency: Result := r.ReadCurrency(Key); // lê o valor da chave em formato TDateTime (data) ktDate: Result := r.ReadDate(Key); // lê o valor da chave em formato TDateTime (hora) ktTime: Result := r.ReadTime(Key); end; end; finally // destroy o objeto criado r.Free; end; end; Procedure WriteAppKey(const Key: String; const Value: Variant; KeyType: TKeyType); var r: TRegistry; begin // cria o objeto TRegistry r := TRegistry.Create; // conecta ao root diferente do padrão r.RootKey := HKEY_LOCAL_MACHINE; try // abre a chave (no root selecionado) r.OpenKey(´Software\´ + Application.Title, True); case KeyType of // grava o valor da chave em formato String ktString: r.WriteString(Key, Value); // grava o valor da chave em formato Boolean ktBoolean: r.WriteBool(Key, Value); // grava o valor da chave em formato Integer ktInteger: r.WriteInteger(Key, Value); // grava o valor da chave em formato Currency (moeda) ktCurrency: r.WriteCurrency(Key, Value); // grava o valor da chave em formato TDateTime (Data) ktDate: r.WriteDate(Key, Value); // grava o valor da chave em formato TDateTime (Hora) ktTime: r.WriteTime(Key, Value); end; finally r.Free; end; end; end.


Espero ter ajudado.


Responder