Entwickler-Ecke
Dateizugriff - string aus der registry löschen
hibbert - Mo 30.09.02 17:11
Titel: string aus der registry löschen
hallo,
jetzt habe ich endlich den code, um dateien in den autostart der registry zu packen, aber wie lösche ich diese wieder aus dem autostart der registry (nicht manuell, sondern über einen delphi befehl !)
Danke
mfg hibbert !
Klabautermann - Mo 30.09.02 18:25
Hallo,
schau dir mal
tRegestry.DeleteKey
und
tRegestry.DeleteValue
in der Online-Hilfe an.
Das sollte dir helfen.
Gruß
Klabautermann
LCS - Mo 30.09.02 18:27
Hi
TRegistry verfügt über die Methoden DeleteValue um einen einzelnen Wert des aktuell geöffneten Keys zu löschen und DeleteKey um einen ganzen Schlüssel mit all seinen Werten zu löschen.
Gruss Lothar
hibbert - Mo 30.09.02 20:56
danke, aber trozdem noch 2 fragen:
1. wo finde ich eigendlich die onlinehilfe
2. kannst du mir vielleicht ein beispiel geben?
DANKE !
mfg hibbert
Delete - Mo 30.09.02 21:34
Zitat: |
wo finde ich eigendlich die onlinehilfe |
Tja,
Onlinehilfe ist eigentlich irreführend. Damit ist in den meisten Fällen die normale Hilfe von Delphi gemeint. Warum die nun online genannt wird? Wahrscheinlich weil´s kein Handbuch ist, das man offline lesen kann.
Im Zeitalter des Web aber -wie gesagt!- irreführend, und ich habe schon darauf gewartet, dass irgendwer mal fragt, was die Onlinehilfe ist. :mrgreen: Danke, hibbert.
Aber im Ernst -
F1!
Zitat: |
kannst du mir vielleicht ein beispiel geben? |
Wozu? Es sind welche in der Hilfe drin. :)
hibbert - Di 01.10.02 15:22
ja schon, aber dieses beispiel funzt bei mir nicht, wie es soll!
delphi startet zwar das Programm, aber es wird kein eintrag aus der registry gelöscht !!
mfg hibbert
ps. Bitteschön !! :mrgreen:
Delete - Di 01.10.02 17:25
Welches OS, welcher Root-Key?
hibbert - Di 01.10.02 17:39
ich weiß leider nicht was du genau meinst ?? :oops:
aber ich möchte gerne einen eintrag aus dem autostart teil der registry entfernen. (ein einfacher code wie z.B.memo1.lines.loadfromfile('deine *txt datei) würdfe mir ja schon reichen !!) verstehste was ich meine, ich hoffe es !!
wenn nicht, dann schicken einfach irgend ein code, der was aus der registry entfernt, sodass ich diesen nur noch ändern muss !
jetzt schonmal DANKE !!
mfg hibbert
Delete - Di 01.10.02 18:42
Ich will das Betriebssystem wissen und wo du was löschen willst!
Unter Windows 2000 und höher dürftest du unter HKLM als nicht Admin keine Chancen haben.
Und wie wäre es, wenn du uns mal deinen Code zeigst, der angeblich nicht funktioniert.
hibbert - Di 01.10.02 21:38
achsooo :lol: also ich habe win xp !!
und der code den ich benutzt habe ist eigendlich der aus der hilfe, aber für dich, hier ist er nocheinmal:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm} uses registry;
procedure TForm1.Button1Click(Sender: TObject); var Reg: TRegistry; Val:TStringList; I:Integer; begin Reg:=TRegistry.Create; try Val:=TStringList.Create; try Reg.RootKey:=HKEY_LOCAL_MACHINE; // Section to look for within the registry if not Reg.OpenKey(Edit1.Text,False) then ShowMessage('Error opening key') else begin Reg.GetValueNames(Val);
for I:=0 to Val.Count-1 do begin ShowMessage(Edit1.Text + Chr(13) + 'has an Entry Called '+Val.Strings[I]+Chr(13)+ 'With a Value of '+Reg.ReadString(Val.Strings[I])); end; if MessageDlg('Ok to delete the key and lose all these values?' ,Mtinformation,[mbYes,mbNo],0)=mryes then Reg.DeleteKey(Edit1.Text);
end; finally Val.Free; end; finally Reg.Free; end; end; end. |
so, versuche es dann jetzt noch mal in ruhe, wenn es klappt, war es nur mal wieder ein dummer anfängerfehler, aber wenn nicht, muss mir einer von euch helfen !
DANKE
mfg hibbert
Delete - Di 01.10.02 21:41
Hast du Admin-Rechte?
hibbert - Mi 02.10.02 16:05
jepp !! :D
Delete - Mi 02.10.02 20:48
Da hat Borland Mist gebaut. Wenn du den Schlüssel vorher schließt, dann geht´s:
Quelltext
1: 2: 3: 4: 5:
| Reg.CloseKey;
if MessageDlg('Ok to delete the key and lose all these values?' ,Mtinformation,[mbYes,mbNo],0)=mryes then Reg.DeleteKey(Edit1.Text); |
hibbert - Mi 02.10.02 23:25
Titel: [b]Danke[/b]
danke, aber löscht dieser befehl nicht alle 'adteien' im schlüssel? wenn ja, wie geht das, dass ich dann nur einen bestimmten lösche??
aber bis jetzt: VIELEN DANK !!
Delete - Do 03.10.02 08:48
Ja, aber das liegt doch auf der Hand, wenn du dir deinen Beispielcode mal anschaust:
Quelltext
1:
| 'Ok to delete the key and lose all these values?' |
Wenn du nur bestimmte Werte aus einem Schlüssel löschen willst, dann schau dir in der Hilfe mal
an.
hibbert - Do 03.10.02 10:49
Dankeschön !
aber ich finde das alles ziemlich kompliziert ! außerdem soll der user nicht gefragt werden, ob der string in der registry gelöscht werden soll, dass programm soll einfach den zuvor gespeicherten string wieder löschen ! (aus dem autostart teil). Also, vielleicht kann man ja noch eine gemeinsame lösung finden !! (aber vorher habe ich jetzt noch 2 wochen ferien !!) :D
mfg hibbert
Delete - Do 03.10.02 15:57
hibbert hat folgendes geschrieben: |
aber ich finde das alles ziemlich kompliziert! |
Ist es aber nicht ... oder es kommt mir nur einfach vor.
Zitat: |
außerdem soll der user nicht gefragt werden, ob der string in der registry gelöscht werden soll, dass programm soll einfach den zuvor gespeicherten string wieder löschen |
Na ja, dann lass einfach die Abfrage mit dem "MessageDlg" weg. Stattdessen prüfst du vor dem Löschen, ob der Wert überhaupt existiert (
ValueExists), und wenn das der Fall ist, dann löscht du ihn.
Zitat: |
Also, vielleicht kann man ja noch eine gemeinsame lösung finden |
Gerade geschehen ... :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!