Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16
  1. #1
    Sobig Wurm
    Registriert seit
    19.06.2007
    Beiträge
    215

    Standard [F] Eigenes Programm in Autostart schreiben

    Hallo ich will mein Programm mit
    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    var regist : tregistry;
    begin
     regist:=tregistry.create;
     regist.rootkey:=HKEY_CURRENT_USER;
     regist.openkey('\Software\Microsoft\Windows\CurrentVersion\Run', true);
     regist.writestring('{Name}','{Dateipfad}');
     regist.closekey;
     regist.destroy;
    end;
    in den Autostart einzutragen. Wenn ich einen bekannten Pfad eintrage funktioniert das auch. Allerdings soll das Programm in der Lage sein seinen aktuellen Pfad selbst zu ermitteln und entsprechend einzutragen, hat jemand ne Idee wie man das realisieren kann?

  2. #2
    Stanley Jobson Avatar von K1ngC0bra
    Registriert seit
    26.08.2007
    Beiträge
    650

    Standard

    So:
    Code:
    function GetPath( RunName: String ) : String;
    var
      Reg: TRegistry;
    begin
      Reg := TRegistry.Create;
      with Reg do
      begin
        RootKey := HKEY_LOCAL_MACHINE;
        OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
        if ValueExists(RunName) then
          Result := ReadString(RunName);
        CloseKey;
        Free;
      end;
    end;
    Habe schnell die Funktion gebaut, sollte funktionieren. Musst nur wissen wie das Ding heißt.

  3. #3
    Tron Avatar von gORDon_vdLg
    Registriert seit
    23.07.2007
    Beiträge
    801

    Standard

    hey k1ng, hast du dich verlesen oder bin ich nur verpeilt? xD
    du lässt ja was auslesen aber er will ja sein eigenes programm pfadunabhängig eintragen. also das würde ich so lösen:

    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    var regist:tregistry;
    begin
      regist:=tregistry.create;
      regist.rootkey:=HKEY_LOCAL_MACHINE;
      regist.openkey('Software\Microsoft\Windows\CurrentVersion\Run', true);
      regist.writestring(extractfilename(application.exename), extractfilepath(application.exename));
      regist.closekey;
      regist.destroy;
    end;

  4. #4
    Stanley Jobson Avatar von K1ngC0bra
    Registriert seit
    26.08.2007
    Beiträge
    650

    Standard

    Damn mein Fehler sry. Wenn du noch mehr Hilfe brauchst:
    http://www.swissdelphicenter.ch/de/showcode.php?id=1157

    Nochmal sorry.
    Hoffe bin wieder auf einer Höhe mit euch xD

  5. #5
    Sobig Wurm
    Registriert seit
    19.06.2007
    Beiträge
    215

    Standard

    @gORDon_vdLg Dein Vorschlag hat nen Haken, so wird nur der ordner in dem sich mein Programm befindet beim Start geöffnet, trotzdem thx
    Hat jemand noch ne idee?

  6. #6
    Stanley Jobson Avatar von K1ngC0bra
    Registriert seit
    26.08.2007
    Beiträge
    650

    Standard

    Ja kleiner Fehler von ihm, so sollte es funktionieren:

    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    var Regist : TRegistry;
    begin
      Regist := TRegistry.Create;
      Regist.RootKey := HKEY_LOCAL_MACHINE;
      Regist.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
      Regist.WriteString(ExtractFileName(Application.ExeName), Application.ExeName);
      Regist.CloseKey;
      Regist.Destroy;
    end;

  7. #7
    Tron Avatar von gORDon_vdLg
    Registriert seit
    23.07.2007
    Beiträge
    801

    Standard

    ja damn^^ war grad verpeilt, k1ing hats berichtigt, so wird es gehen...

  8. #8
    Sobig Wurm
    Registriert seit
    19.06.2007
    Beiträge
    215

    Standard

    Funktioniert einwandfrei, danke ^^

  9. #9
    Fortgeschrittener
    Registriert seit
    18.01.2008
    Beiträge
    38

    Standard

    Mhm, geht dies auch mit einer Checkbox?

    Also das wenn ein Haken drin ist, dass es dann in den Auostart eingetrage wird, wenn nicht, das es dann eben nicht in dem Autostart drin ist ^^

    Also so weit bin ich bis jetzt:

    Code:
    procedure TForm1.CheckBox1Click(Sender: TObject);
    var
     Registry: TRegistry;
    begin
    if Checkbox1.Checked then
     begin
      Registry:=TRegistry.Create;
     end;
    end;
    Das Problem ist, dass es trotzdem nicht in den Autostart geschrieben wird, an was liegt das, bzw. was muss ich ändern?

    Gegoogelt habe ich, nur leider kam nix mit Checkbox und so...

    Hoffe ihr könnt mir helfen?

    Vielen Dank im voraus


    Sector
    [center:3294379cfc]Proud Member of SCF
    ~Special Cat Force~[/center:3294379cfc]

  10. #10
    Tron Avatar von gORDon_vdLg
    Registriert seit
    23.07.2007
    Beiträge
    801

    Standard

    Das Registry.create reicht natürlich nicht, musst schon den kompletten code schreiben :shock:

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •