[Delphi] [oder -bat] Registry Wert schreiben

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von N30N, 4. August 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 4. August 2007
    [oder -bat] Registry Wert schreiben

    HI,

    in meinem Programm möcht ich ne Funktion drinnehaben die den Standartprogramminstallationspfad ändert. Der zugehörige Registry Key ist:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ProgramFilesDir


    Wie ändere ich den entweder mit Batch oder direkt in Delphi?

    Danke!
     
  2. 4. August 2007
    AW: [oder -bat] Registry Wert schreiben

    Delphi:
    Code:
    Uses registry;
    ...
    var
    Reg: TRegistry;
    begin
    Reg:=TRegistry.Create;
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\',false);
    Reg.WriteString('ProgramFilesDir','blub');
    Reg.Free;
    ...
    
    Batch:

    reg ADD HKLM\Software\Microsoft\Windows\CurrentVersion /v "ProgramFilesDir" /t REG_SZ /d "blub" /f

    (/f Force overwriting the existing registry entry without prompt)


    Bei dem Befehl "reg" bin ich mir aber nicht sicher ob er auch bei z.B. 9x-System vorhanden ist...
    er scheint etwas Kommandozeilen spezifisches bei NT zu sein......

    da wo blub steht kommt dein neuer string rein....
    bei Fragen fragen....
    bei Fehlern berichtigen.....
     
  3. 4. August 2007
    AW: [oder -bat] Registry Wert schreiben

    batch:
    Code:
    @echo off
    echo Windows Registry Editor Version 5.00 >> 1.reg
    echo [HKEY_LOCAL_MACHINE\SOFTWARE\...] >> 1.reg
    echo "SCHLÜSSEL"="WERT" >> 1.reg
    regedit /s 1.reg
    del 1.reg
    exit
    nicht getestet^^
     
  4. 6. August 2007
    AW: [oder -bat] Registry Wert schreiben

    Also mein Quelltext sieht jetzt folgendermassen aus:

    Code:
    procedure TEasyinstall.InstallpfadClick(Sender: TObject);
    var
    Reg: TRegistry;
    begin
    Reg:=TRegistry.Create;
    Reg.RootKey:=HKEY_LOCAL_MACHINE;
    Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\',false);
    Reg.WriteString('ProgramFilesDir',edit1.text);
    Reg.Free;
    end;
    uses registry hab ich drinne.


    Doch trotzdem wird der Dateipfad nicht geändert. Was mach ich denn falsch? Hab mal getestet was für ein Pfad angezeigt wird bei Setupprogrammen, doch trotzdem steht dort weiterhin c:\programme anstatt meinem test Ordner c:\test\. Ich hab auch versucht der Ordner per Hand zu erstellen, allerdings trotzdem kein Erfolg.


    Edit1.text ist bei mir das eingabefeld, wo ich den Pfad reinschreibe. Ist da vllt was falsch, muss ich nen anderen Datentyp umwandeln?

    //Edit: Habs grad nochma getestet, am Edit Feld liegt es wohl nicht.

    //Edit2: Der Reg Wert wird tatsächlich geändert...Aber wieso wollen die Setup dann in den alten Pfad installieren? :/

    //Edit3: Scheint doch zu funzen ^^ Hier ist erstmal ~closed~
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.