Autor |
Beitrag |
hibbert
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Mo 30.09.02 17:11
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
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: 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
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: 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
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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.  Danke, hibbert.
Aber im Ernst -
F1!
Zitat: | kannst du mir vielleicht ein beispiel geben? |
Wozu? Es sind welche in der Hilfe drin. 
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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 !! 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 01.10.02 17:25
Welches OS, welcher Root-Key?
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Di 01.10.02 17:39
ich weiß leider nicht was du genau meinst ??
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
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Di 01.10.02 21:38
achsooo  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:
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
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Di 01.10.02 21:41
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Mi 02.10.02 16:05
jepp !! 
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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 !!
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
Quelltext
an.
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: 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 !!)
mfg hibbert
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 ... 
|
|
patrick
      
Beiträge: 1481
WIN2k, WIN XP
D6 Personal, D2005 PE
|
Verfasst: So 13.10.02 16:50
also wenn du doch wieder auf die idee mit dem key löschen kommst pass auf das es dir nicht so wie mir passiert
zum beitrag
_________________ Patrick
im zweifelsfall immer das richtige tun!!!
|
|