Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi registry (https://www.delphipraxis.net/5113-registry.html)

MathiasSimmack 24. Mai 2003 14:20

Zitat:

Zitat von Daniel B
Das wäre entwas besser für Ihn:
Delphi-Quellcode:
for i := 1 to 25 do
  Reg.WriteString('url1' + inttostr(i),'');

Warum sollte "url11" besser sein als der eigentliche Wert "url1"? Ich vermute, du hast einen Fleck auf der Brille. :wink: Durch die Schriftart des Delphi-Codes wirkt es wie eine Eins, tatsächlich steht da aber nur url gefolgt von einer Zahl im Bereich von 1 bis 25. Ich halte also meine Lösung nach wie vor für besser. :)

Daniel B 24. Mai 2003 14:24

Zitat:

Zitat von MathiasSimmack
Ich vermute, du hast einen Fleck auf der Brille.

:wall:
Das wirds wohl sein. Ich sollte nicht mehr mit der Sonnenbrille am PC sitzen. :cool:

Grüsse, Daniel :hi:

dde 24. Mai 2003 14:40

Habe es jetzt mal so gemacht:

Delphi-Quellcode:
program Reg;

uses
  Forms, Registry

{$R *.res};
procedure FormCreate(Sender: TObject);
var reg:Tregistry;
begin
Reg := TRegistry.Create;
Reg.OpenKey ('Software\Microsoft\Internet Explorer\', FALSE);
    try
      Reg.DeleteKey('TypedURLs')
    finally
      Reg.CloseKey;
    end;
Reg.Free;
end;
begin
  Application.Initialize;
  Application.Run;
end.
Funktioniert aber immer noch nicht^^!

MathiasSimmack 25. Mai 2003 07:51

Au weia. Ich habe eigentlich gemeint, dass du auf alle Formulare und unnötige Units verzichten sollst. Das heißt logischerweise: keine Forms-Unit. Und damit gibt es dann auch kein
Delphi-Quellcode:
Application.Initialize;
Application.Run;
Und dann scheinst du nicht zu lesen, was dir andere sagen. Du hast Christians Code unvollständig übernommen, denn zum einen fehlt der Haupt-try-finally-Block, und zum anderen ist "OpenKey" eine Funktion, deren Bool-Rückgabewert zur Prüfung (konnte der Schlüssel geöffnet werden oder nicht?) genutzt werden kann.

Du solltest die Prozedur "FormCreate" aus deinem Programm nehmen und den Registry-Code stattdessen gleich und richtig zwischen
Delphi-Quellcode:
begin
end.
schreiben. Dann sollte es auch funktionieren.

Übrigens: wenn du den Schlüssel "TypedURLs" löschen willst, dann brauchst du nicht vorher "Software\Microsoft\Internet Explorer" öffnen. Einfach
Delphi-Quellcode:
Reg.DeleteKey('Software\Microsoft\Internet Explorer\TypedURLs');
tut´s IMHO auch.

dde 25. Mai 2003 10:11

So jetzt funktioniert alles. Hier der richtige Code in der .dpr
Delphi-Quellcode:
program VerlaufLeeren;

uses
   Registry, Forms, Dialogs
{$R *.res};

var R:Tregistry;
begin
 R:=TRegistry.Create;
 R.DeleteKey('Software\Microsoft\Internet Explorer\TypedURLs');
 R.Free;
 ShowMessage('Verlauf erfolgreich geleert!');
end.
Leider ist die Exe-Datei 373 KB groß, weil "Forms" und "Dialogs" geladen werden, um "ShowMessage" anzuzeigen. Und ohne "Forms" und "Dialogs" ist die Datei nur 117 KB groß? Wie kann ich auf "Forms" und "Dialogs" verzichten und gleichzeitig eine Message erhalten??

Luckie 25. Mai 2003 10:58

Dann nimm:
Delphi-Quellcode:
Messagebox(0, 'Verlauf erfolgreich geleert.' 'Verlauf lleren', MB_ICONINFORMATION);
Eventuell wäre eine Meldung, wenn es nicht geklappt hat auch ganz witzig.

dde 25. Mai 2003 11:10

Thx @Luckie

So siehts dann als Entfassung aus (endlich :!: ):
(alles in der .dpr)
Delphi-Quellcode:
program VerlaufLeeren;

uses
   Registry, Windows
   {$R *.res};

var R:Tregistry;
begin
 R:=TRegistry.Create;
 R.DeleteKey('Software\Microsoft\Internet Explorer\TypedURLs');
 R.Free;
 MessageBox(0, 'Verlauf erfolgreich geleert.','Verlauf leeren', MB_ICONINFORMATION);
end.
Und die Datei ist jetzt nur 114 KB groß. Mit UPX gepackt nur 52 KB^^.

Luckie 25. Mai 2003 11:23

Zitat:

Zitat von dde
ist jetzt nur 114 KB groß.

Und geht so nicht. Oder wo gibts du die Root an?
Delphi-Quellcode:
program Project1;

uses
  Registry,
  Windows;

var
  R:Tregistry;
begin
  R:=TRegistry.Create;
  try
    R.RootKey:=HKEY_CURRENT_USER;
    if R.DeleteKey('Software\Microsoft\Internet Explorer\TypedURLs') then
      MessageBox(0, 'Verlauf erfolgreich geleert.','Verlauf leeren', MB_ICONINFORMATION)
    else
      MessageBox(0, 'Verlauf konnte nicht geleert werden.','Verlauf leeren', MB_ICONSTOP);
  finally
    R.Free;
  end;
end.

Chewie 25. Mai 2003 11:30

Zitat:

Zitat von Luckie
Zitat:

Zitat von dde
ist jetzt nur 114 KB groß.

Und geht so nicht. Oder wo gibts du die Root an?

Laut Delphi-Hilfe wird doch standardmäßig HKEY_CURRENT_USER eingestellt.

Zitat:

Zitat von Delphi-Hilfe
Mit Create wird ein TRegistry-Objekt erstellt. Dabei erhält die Eigenschaft RootKey den Wert HKEY_CURRENT_USER und die Eigenschaft LazyWrite den Wert True.


dde 25. Mai 2003 11:31

Zitat:

Und geht so nicht. Oder wo gibts du die Root an?
Funktionieren tut es!


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.
Seite 2 von 3     12 3      

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