Autor Beitrag
hibbert
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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:
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 01.10.02 17:25 
Welches OS, welcher Root-Key?
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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:

ausblenden volle Höhe 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
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 01.10.02 21:41 
Hast du Admin-Rechte?
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: Mi 02.10.02 16:05 
jepp !! :D
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 02.10.02 20:48 
Da hat Borland Mist gebaut. Wenn du den Schlüssel vorher schließt, dann geht´s:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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



BeitragVerfasst: Do 03.10.02 08:48 
Ja, aber das liegt doch auf der Hand, wenn du dir deinen Beispielcode mal anschaust:
ausblenden 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
ausblenden Quelltext
1:
Reg.DeleteValue					

an.
hibbert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1007

WinServer2003, Win XP, Linux
D6 Pers, D05
BeitragVerfasst: 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
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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:
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: 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!!!