Avatar billede var Nybegynder
03. september 2006 - 18:59 Der er 20 kommentarer og
1 løsning

Slette registrerings entry ?

Hvordan sletter man en registerings entry i Delphi?

Tak på forhånd
Avatar billede stone Forsker
03. september 2006 - 19:21 #1
Forstår ikke helt spørgsmålet... er det når du installere delphi at du vil slette den registrering om oprettes ved installation.?
Avatar billede var Nybegynder
03. september 2006 - 19:24 #2
i registerings basen.. jeg vil gerne lære at fjerne dem..
Avatar billede var Nybegynder
03. september 2006 - 19:25 #3
altså hvis jeg opretter en flsk nøgle for sjov hvordan sletter man den via delphi
Avatar billede kroning Nybegynder
03. september 2006 - 22:35 #4
Du benytter de funktioner der findes i TRegistry

http://delphi.about.com/od/windowsshellapi/a/tregistry.htm
Avatar billede arne_v Ekspert
03. september 2006 - 22:37 #5
Avatar billede kroning Nybegynder
03. september 2006 - 22:42 #6
Her er et lille eks:

var
  reg: TRegistry;
  ok: boolean;
begin
  try
    reg := TRegistry.create;
    reg.RootKey := HKey_Local_machine;
    ok := Reg.DeleteKey('\Software\TestKey\');
    if ok then showmessage('Registry key removed successfully');
  finally
    reg.free;
end;
Avatar billede kroning Nybegynder
03. september 2006 - 22:44 #7
arne_v > Har du set nederst på den side du linker til: Last revised January 8, 1996.
Nok lidt for gammel til de delphi versioner de fleste benytter i dag.
Avatar billede arne_v Ekspert
03. september 2006 - 23:05 #8
RegDeleteKey er en Windows funktion.

Jeg har svært ved at tro at Delphi skulle have droppet supporten for den.

Men jeg kan så forstå at de har tilføjet en klasse til at indkapsle
det pænt med.
Avatar billede var Nybegynder
04. september 2006 - 15:23 #9
hvis jeg skal slette den her:
HKEY_LOCAL_MACHINE\SOFTWARE\testing

hvordan skal koden så se ud?

sådan her eller?

var
  reg: TRegistry;
  ok: boolean;
begin
  try
    reg := TRegistry.create;
    reg.RootKey := HKey_Local_machine;
    ok := Reg.DeleteKey('HKEY_LOCAL_MACHINE\SOFTWARE\testing');
    if ok then showmessage('Registry key removed successfully');
    else
    showmessage('Registry key not removed!');
  finally
    reg.free;
end;

eller laver jeg noget forkert?

og behøver:
reg.RootKey := HKey_Local_machine;
at være med?
Avatar billede kroning Nybegynder
04. september 2006 - 17:24 #10
Dette her virker, og ja du skal sætte Rootkey medmindre du vil rette noget i HKEY_CURRENT_USER så behøver du ikke da Rootkey sættes til denne som default.

var
  reg: TRegistry;
  ok: boolean;
begin
  try
    reg := TRegistry.create;
    reg.RootKey := HKey_Local_machine;
    ok := Reg.DeleteKey('\SOFTWARE\testing');
    if ok then
        showmessage('Registry key removed successfully')
    else
    showmessage('Registry key not removed!');
  finally
    reg.free;
    end;
end;
Avatar billede var Nybegynder
04. september 2006 - 18:21 #11
okay mange tak.. jeg kan godt ændre:

reg.RootKey := HKey_Local_machine;

til alle de andre ting ikke? fx "HKey_Users" ?

smid også lige et svar ;)
Avatar billede kroning Nybegynder
04. september 2006 - 19:05 #12
jo, og et svar.
Avatar billede var Nybegynder
04. september 2006 - 19:41 #13
accepteret ;-)
Avatar billede var Nybegynder
05. september 2006 - 18:20 #14
kroning > kan jeg lige få din email?
Avatar billede kroning Nybegynder
05. september 2006 - 19:03 #15
Hvorfor det?
Avatar billede var Nybegynder
05. september 2006 - 19:24 #16
har noget jeg gerne vil spørge dig om
Avatar billede kroning Nybegynder
05. september 2006 - 19:31 #17
Kan du ikke spørge om det her? Men ellers er min mail let at finde, bare google på navnet.
Avatar billede var Nybegynder
05. september 2006 - 19:43 #18
du har sørme ret :)

har sendt en mail
Avatar billede var Nybegynder
05. september 2006 - 20:01 #19
Hvordan sletter man så registry values?

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\
"CTFMON.EXE" = "C:\WINDOWS\System32\ctfmon.exe" [MS]

dette er bare et eksempel
Avatar billede kroning Nybegynder
05. september 2006 - 20:03 #20
Du benytter DeleteValue:

var
  reg: TRegistry;
  ok: boolean;
begin
  try
    reg := TRegistry.create;
    reg.RootKey := HKey_Local_machine;
    reg.OpenKey('\SOFTWARE\testing\',false);
    ok := Reg.DeleteValue('lala');
    if ok then
        showmessage('Value removed successfully')
    else
    showmessage('Value not removed!');
  finally
    reg.free;
    end;
end;
Avatar billede var Nybegynder
05. september 2006 - 20:07 #21
du er bare min mand kroning :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester