AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehler bei in Registry schreiben

Ein Thema von hadschi92 · begonnen am 9. Sep 2007 · letzter Beitrag vom 9. Sep 2007
Antwort Antwort
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#1

Fehler bei in Registry schreiben

  Alt 9. Sep 2007, 21:31
Ich bin grad dabei ne Konsolenanwendung zu schreiben, die sich auch in den Autostart der Registry schreiben soll, doch dabei erhalte ich eine Fehlermeldung bei der Deklinierung des Rootkeys (Undefinierter Bezeichner: HKEY_CURRENT_USER).
Doch eigentlich sollte das ja funktionieren, ohne die Zeile mit dem Rootkeyzeugs funktioniert das schreiben in die Registry.

Hier mal mein gesamter Delphicode:
Delphi-Quellcode:
program Project1;

uses
  Registry, Forms;

var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
    Reg.WriteString(Application.Exename, ParamStr(0));
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end.
Tja, woran liegt das, hat da jemand vielleicht einen Tipp?
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.406 Beiträge
 
Delphi XE8 Enterprise
 
#2

Re: Fehler bei in Registry schreiben

  Alt 9. Sep 2007, 21:37
Irgendwie sieht das ganze nicht nach einer Konsolenanwendung aus. Bei mir sieht die so aus :
Delphi-Quellcode:
program StringMove;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows, Forms, Registry;

var
  Reg: TRegistry;

begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
    Reg.WriteString(Application.Exename, ParamStr(0));
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end.
Probiere es mal so. Nur so runtergetippt.

Edit 1: SysUtils nachgetragen
Edit 2: Windows und Forms nachgetragen.
Rolf Warnecke
EasyNetSoft
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.262 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Fehler bei in Registry schreiben

  Alt 9. Sep 2007, 21:41
Moin Hadschi,

diese Konstante ist in der Unit Windows deklariert.
Diese müsstest Du noch mit einbinden.

Dafür kannst Du auf die Unit Forms verzichten.
Application.ExeName enthält das gleiche, wie ParamStr(0).
Wenn Du nur den Dateinamen haben willst, schau Dir mal ExtractFilename an (Unit Sysutils)
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
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Fehler bei in Registry schreiben

  Alt 9. Sep 2007, 21:47
Eher so:

Delphi-Quellcode:
program KonsoleXYZ;

uses
  Windows, SysUtils, Registry; // <--<< HKEY_CURRENT_USER in Windows.pas !

var
  Reg: TRegistry;

begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
    // Application.Exename <--<< das selbe nur ohne Forms.pas
    // >>--> ExtractFileName(ParamStr(0))
    Reg.WriteString(ExtractFileName(ParamStr(0)), ParamStr(0));
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end.
// Edit: Ach menno Christian... hättest du auch vor meinem Cacheupdate schreiben können.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#5

Re: Fehler bei in Registry schreiben

  Alt 9. Sep 2007, 21:53
Ich habs jetzt so gemacht, danke für die Windowsunit, genau an der lags:

Delphi-Quellcode:
program Project1;

uses
  Registry, Windows;

var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
    Reg.WriteString('Start', ParamStr(0){<-außerdem ist das hier der Wert für den Registryeintrag;)});
    Reg.CloseKey;
  finally
    Reg.Free;
  end;
end.
Mir hat ParamStr(0) gereicht, ExtractFileName brauch ich nicht, oder?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.262 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Fehler bei in Registry schreiben

  Alt 9. Sep 2007, 21:58
Moin Hadschi,

der Name 'Start' ist natürlich nicht ungefährlich.
Wenn der schon existiert, überschreibst Du den bestehenden Wert.
Ein eindeutiger Name wäre schon ganz sinnvoll.
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
hadschi92

Registriert seit: 25. Okt 2006
83 Beiträge
 
Delphi XE3 Professional
 
#7

Re: Fehler bei in Registry schreiben

  Alt 9. Sep 2007, 22:00
Ja, das passt schon, der Name war nur provisorisch.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf