Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Registry Autostart problem (https://www.delphipraxis.net/21896-registry-autostart-problem.html)

CReber 9. Mai 2004 16:58


Registry Autostart problem
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var regist:TRegistry;
begin
      regist.RootKey := HKEY_CURRENT_USER;
      regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', true);
      Try
        regist.WriteString('Programmname', 'c:\Programm.exe');
      finally
        regist.CloseKey;
        regist.Free;
      end;
end;
Was zum Teufel ist daran falsch? :) Macht bei mir immer einen Fehler beim Setzen der Value für Programmname

SirThornberry 9. Mai 2004 17:03

Re: Registry Autostart problem
 
wo erstellst du die instanz dazu?
regist.free
hab ich ja gefunden
aber wo ist das
regist := TRegistry.Create....?

Luckie 9. Mai 2004 17:03

Re: Registry Autostart problem
 
Was für einen Fehler? Fehler gibt es viele. :roll:

Das einzige, was ich sehe: Wo erstellst du dein TRegistry-Objekt?

HomerGER 9. Mai 2004 17:05

Re: Registry Autostart problem
 
versuche es mal so

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var regist:TRegistry;
begin
     
      regist := TRegistry.Create();
      Try
        regist.RootKey := HKEY_CURRENT_USER;
        regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', true);
        regist.WriteString('Programmname', 'c:\Programm.exe');
        regist.CloseKey;  
      finally
       
        regist.Free;
      end;
end;

hier bitte ich dein augenmerk mal auf die zeile
"regist := TRegistry.Create();"
zu richten


ps
Luckie 18:03
SirThornberry 18:03
Homer 18:05

ich werde langsam alt

CReber 9. Mai 2004 17:08

Re: Registry Autostart problem
 
wusste doch ich hab was übersehen ;) jaja sowas passiert wenn man so ein schmarn den ganzen tag macht ;)

MathiasSimmack 9. Mai 2004 17:16

Re: Registry Autostart problem
 
Zitat:

Zitat von HomerGER
versuche es mal so [...]

Nein, versuche es lieber so:
Delphi-Quellcode:
regist := TRegistry.Create; // was soll der Quark mit ()?
if(regist <> nil) then
try
  regist.RootKey := HKEY_CURRENT_USER

  // "OpenKey" ist eine Funktion!
  // Niemand garantiert, dass der Schlüssel geöffnet oder
  // erzeugt werden kann. Darum wäre es zweckmäßig, den
  // Code davon abhängig zu machen, das "OpenKey"
  // erfolgreich war (= true)
  if(regist.OpenKey('bla bla',true)) then
  try
    // im Fehlerfall löst "WriteString" eine Exception
    // aus (s. Delphi-Hilfe)
    regist.WriteString('bla','bla');
    // durch diesen try/finally-Block wird wenigstens
    // der Reg-Schlüssel zugemacht
  finally
    regist.CloseKey;
  end;
finally
  regist.Free;
end;

HomerGER 9. Mai 2004 17:26

Re: Registry Autostart problem
 
[quote="MathiasSimmack"]
Zitat:

Zitat von HomerGER
versuche es mal so [...]

Nein, versuche es lieber so:
was soll der Quark mit ()?
quote]

sorry
TRegistry.Create(KEY_READ)

Luckie 9. Mai 2004 17:46

Re: Registry Autostart problem
 
Zitat:

Zitat von HomerGER
TRegistry.Create(KEY_READ)

Womit dann sein Vorhaben:
Delphi-Quellcode:
regist.WriteString('Programmname', 'c:\Programm.exe');
mit ziemlicher Sicherheit fehlschlagen dürfte. ;)

MathiasSimmack 9. Mai 2004 18:00

Re: Registry Autostart problem
 
Ich denke, das sind schlechte (?) Angewohnheiten. Delphi-Code sieht nicht cooler aus, wenn man Funktionen oder Prozeduren ohne Parameter mit leeren Klammern schmückt. Das macht bei C und Co. Sinn. Aber nicht bei Delphi.

HomerGER 9. Mai 2004 18:03

Re: Registry Autostart problem
 
womit du sicher recht hast :oops:
KEY_READ beim lesen nicht schreiben
sollte ich mir auch mal zu herzen nehmen


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:26 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