AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

registry

Ein Thema von dde · begonnen am 24. Mai 2003 · letzter Beitrag vom 26. Mai 2003
Antwort Antwort
Seite 1 von 3  1 23      
dde

Registriert seit: 7. Mai 2003
132 Beiträge
 
#1

registry

  Alt 24. Mai 2003, 14:07
wieso funktioniert das nicht:

Delphi-Quellcode:
uses registry...

procedure TForm1.FormCreate(Sender: TObject);
var Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey:=HKEY_CURRENT_USER;
Reg.OpenKey ('Software\Microsoft\Internet Explorer\TypedURLs', FALSE);
Reg.WriteString ('url1', '');
Reg.WriteString ('url2', '');
Reg.WriteString ('url3', '');
Reg.WriteString ('url4', '');
Reg.WriteString ('url5', '');
Reg.WriteString ('url6', '');
Reg.WriteString ('url7', '');
Reg.WriteString ('url8', '');
Reg.WriteString ('url9', '');
Reg.WriteString ('url10', '');
Reg.WriteString ('url11', '');
Reg.WriteString ('url12', '');
Reg.WriteString ('url13', '');
Reg.WriteString ('url14', '');
Reg.WriteString ('url15', '');
Reg.WriteString ('url16', '');
Reg.WriteString ('url17', '');
Reg.WriteString ('url18', '');
Reg.WriteString ('url19', '');
Reg.WriteString ('url20', '');
Reg.WriteString ('url21', '');
Reg.WriteString ('url22', '');
Reg.WriteString ('url23', '');
Reg.WriteString ('url24', '');
Reg.WriteString ('url25', '');
Reg.Destroy;
Form1.Close;
end;
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#2
  Alt 24. Mai 2003, 14:31
Hallo,

CloseKey nicht vergessen, ausserdem try..except benutzen.
Könnte schief gehen.

Grüsse, Daniel
  Mit Zitat antworten Zitat
dde

Registriert seit: 7. Mai 2003
132 Beiträge
 
#3
  Alt 24. Mai 2003, 14:42
funktioniert auch nicht!
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#4

hmm,

  Alt 24. Mai 2003, 14:46
vielleicht ein Rechteproblem ? Darf dein User denn überhaupt in der Registry rumfuchteln ?

PS: SpinEdit Problem gelöst ?
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#5

Re: hmm,

  Alt 24. Mai 2003, 14:48
Hallo,
Zitat von JoelH:
vielleicht ein Rechteproblem ? Darf dein User denn überhaupt in der Registry rumfuchteln ?
Wenn Er sich vorher die Rechte holt, dann kann Er da drin "rumfuchteln". //wäre eine möglichkeit das Er das nicht getan hat, kommt drauf an welches System

Grüsse, Daniel
  Mit Zitat antworten Zitat
dde

Registriert seit: 7. Mai 2003
132 Beiträge
 
#6
  Alt 24. Mai 2003, 15:00
Ich glaube nicht, dass es an den User-Rechten mangelt! Sind Administratorrechte nicht ausreichend??? Naja in anderen Delphiprogrammen klappt es (der gleiche source) nur bei mir nicht !!

@joelH: Ja das Problem ist gelöst und abgehackt!
  Mit Zitat antworten Zitat
dde

Registriert seit: 7. Mai 2003
132 Beiträge
 
#7
  Alt 24. Mai 2003, 15:03
Habt den Source mal in einen Button gepackt: Dort klappt alles Prima!

Wie krieg ich das aber hin, wenn das Programm startet, das die Registryeinträge gelöscht werden und anschließend das Programm geschlossen wird, und wenn es geht ohne eine Programmoberfläche zu sehen!

EDIT: Mit ShowMessage('gelöscht')!! Form1.onClose??
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8
  Alt 24. Mai 2003, 15:12
Indem du den Code im DPR-Quelltext unterbringst und auf alle externen Units verzichtest. Also auch auf alle Formulare. Eine MessageBox kannst du auch mit gleichnamigen Befehl aus der Windows-Unit anzeigen lassen.
Mit Registry-Unit dürfte das Programm, das ja wohl nur die URLs des IE löschen soll, dann etwa 60k groß sein.

btw:
Reg.Destroy; sollte besser
Reg.Free; heißen. Den Tipp mit try/finally/end solltest du auch nicht in den Wind schlagen, denn u.U. kann es auf einem anderen Rechner (an dem du evtl. arbeitest, bzw. jemand, der dein Programm benutzt) Rechteprobleme geben. Zwar bei HKEY_CURRENT_USER eher unwahrscheinlich, aber warum die Möglichkeit riskieren wenn man es vermeiden kann?

Zu guter Letzt: würde es nicht reichen, einfache alle "url"-Einträge in dem Schlüssel zu entfernen? Die Registry-Unit bietet passende Funktionen zum Lesen aller Werte und Unterschlüssel in einem Schlüssel.
Aber selbst wenn du bei deiner Methode bleiben willst, wäre eine for-Schleife wohl günstiger, kürzer und eleganter:
Delphi-Quellcode:
for i := 1 to 25 do
  Reg.WriteString('url' + inttostr(i),'');
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#9
  Alt 24. Mai 2003, 15:15
Hallo,
Zitat von MathiasSimmack:
Aber selbst wenn du bei deiner Methode bleiben willst, wäre eine for-Schleife wohl günstiger, kürzer und eleganter:
Delphi-Quellcode:
for i := 1 to 25 do
  Reg.WriteString('url' + inttostr(i),'');
Das wäre entwas besser für Ihn:
Delphi-Quellcode:
for i := 1 to 25 do
  Reg.WriteString('url1' + inttostr(i),'');
Grüsse, Daniel
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#10
  Alt 24. Mai 2003, 15:17
Moin DDE,

die Struktur sollte besser so aussehen:

Delphi-Quellcode:
Reg := TRegistry.Create;
try
  // Mach was mit dem Objekt
  if Reg.OpenKey(...) then
  begin
    try
      // Mach was mit dem geöffneten Key
    finally
      Reg.CloseKey;
    end;
  end;
finally
  FreeAndNil(Reg);
  // oder
  Reg.Free; // Nicht Destroy
end;
Warum das bei Dir im OnCreate nicht funktioniert ist mir allerdings auch nicht klar. Prüf' doch mal nach dem OpenKey, bzw. WriteString, ob das System nicht einen Fehler gemeldet hat (z.B. mit ShowErrorMessage(SysErrorMessage(GetLastError)); )

Es kann übrigens durchaus sein, dass Administratorrechte nicht genügen. Manche Keys sind auch für den Admin gesperrt. Ein Admin hat dann zwar das Recht sich die Berechtigungen zu geben, dies ist dann aber nicht die Standardeinstellung.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz