Announcement

Collapse
No announcement yet.

wie trage ich was in der registry ein??

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • wie trage ich was in der registry ein??

    ich will, daß mein programm nach dem windowsstart gleich geladen wird ohne daß es in autostart eingetragen
    werden muß. hagen reddmann meinte daß man da einen bestimmten eintrag in der registry vornehmen muß.
    wie trage ich was in die registry ein?? kenne mich bisher nur mit ini-dateien aus!!!!!

    mfg

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Hallo Markus,

    du brauchst dein Programm nur in folgendem Registry-Pfad einzutragen:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Run

    Dann sollte es automatisch starten. Ist aber anschließend für Normal-User schlecht wieder zu entfernen, aber das willst du ja auch nicht :-))

    Das Eintragen selber sieht so aus:

    uses Registry; //Unit einbinden!

    <p>procedure TForm1.Button1Click(Sender: TObject);<br>
    var reg : TRegistry;<br>
    begin<br>
    &nbsp; reg := TRegistry.create;<br>
    &nbsp; reg.RootKey := HKEY_LOCAL_MACHINE;<br>
    &nbsp; reg.OpenKey('Software\Microsoft\Windows\CurrentVer sion\Run',False);<br>
    &nbsp; reg.WriteString('MeinProgramm','c:\Programme\Test\ MeinProgramm.exe');<br>
    &nbsp; reg.Free;<br>
    end;</p>

    Gru&#223

    Comment


    • #3
      besten dank!!!!! der anwender wird selbstverständlich wählen können ob er das will oder nicht.
      wenn eine checkbox angeklickt ist startet es von selber, wenn nicht dann wird der eintrag wieder gelöscht.

      mfg

      marku
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment


      • #4
        Ich arbeite unter NT und wollte dem Anwender die Option zum Autostart geben.
        "Normale" Registry zugriffe funktionieren einwandfrei, nur auf besagten Pfad kann ich nicht zugreifen.
        Kann es sein, das ich unter NT dafuer Admin-Rechte brauche, oder mache ich doch was falsch??

        Danie

        Comment


        • #5
          Unter NT können die Admins gezielt bestimmte Zweige sperren oder eben nicht, Versuche einfach mal zum test per Regedit an besagten Rechner einen beliebigen Schlüssel in den benötigten Zweig einzutragen, dann sollte eine entsprechende Meldung kommen, wenn's untersagt ist

          Comment


          • #6
            Mit Regedit kann ich Schluessel eintragen. Nur mit Delphi nicht. <br>
            Am Quellcode kann es aber "eigentlich" nicht liegen. Ich habe ihn aus einem funktionierenden Abschnitt herauskopiert und modifiziert.<br>
            <br>
            <br>
            var<br>
            reg : TRegistry;<br>
            Temp : string;<br>
            begin<br>
            reg := TRegistry.create;<br>
            reg.RootKey := HKEY_LOCAL_MACHINE;<br>
            if reg.OpenKey('Software\Microsoft\Windows\CurrentVer sion\Run',False)=True then begin<br>
            try<br>
            Temp:=reg.ReadString('MeinProgramm');<br>
            irgendetwas;<br>
            except<br>
            sonstetwas;<br>
            end;<br>
            end;<br>
            reg.Free;<br>
            end;<br>
            <br>
            Delphi springt aber erst gar nicht in die if Schleife, da reg.OpenKey immer False zurueckgibt.<br>
            <br>
            Danie

            Comment


            • #7
              Also unter HKEY_LOCAL_MACHINE und dann 'Software\Microsoft\Windows\CurrentVersion, gibts bei mir auch kein Run, sondern nur unter HKEY_CURRENT_USER... :

              Comment


              • #8
                Den Schluessel 'Software\Microsoft\Windows\CurrentVersion\Run' sollte es sowohl unter HKEY_LOCAL_MACHINE als auch unter HKEY_CURRENT_USER geben. Der Unterschied ist das Eintraege unter HKEY_LOCAL_MACHINE bei allen Benutzern gestartet werden, die unter HKEY_CURRENT_USER nur bei dem jeweiligen Benutzer.
                <p>
                Prinzipiell startet Windows nach dem anmelden aber die Eintraege aus beiden Schluesseln (hier funktioniert es zumindest).
                <p>
                Trotz allem loest dies noch nicht mein prinzipielles Problem, das Delphi trotz vorhandenem Schluessel nicht in die if-Schleife springt, da reg.OpenKey immer False zurueckgibt

                Comment


                • #9
                  Hmm, also wie gesagt hier bei mir unter NT gibt es diesen Schlüssel nicht, wenn er auf dem entsprechenden Rechner vorhanden ist, dann ist das schon sehr merkwürdig, ich würde dann vielleicht den Schlüssel testweise erstmal runterkürzen und dann ab Software anfangen und immer weiter verlängern, mal sehen bis zu welchem Schlüssel es klappt, vielleicht fällt dabei was auf ?! (Läuft ein Virenscanner?

                  Comment


                  • #10
                    Hallo, ich hab in der Firma NT4 und finde den Schlüssel zwar unter HKEY_LOCAL_MACHINE , aber nicht unter HKEY_CURRENT_USER ! Eventuell wird der Schlüssel immer erst bei Bedarf angelegt ? Wenn ich dran denke, schau ich am Wochenende mal zuhause unter WIN2000 nach... Gruß - Günthe
                    Günther

                    Comment


                    • #11
                      Ich habe den Zugriff auf die Registry noch einmal genauer getestet. Komischerweise habe ich mit Regedit Zugriff auf alle Schluessel und "Verzeichnisse" der Registry. Nur mein Programm kann weder lesend noch schreibend auf einige wenige "Verzeichnisse" (darunter u.a. auch Microsoft) zugreifen. <br>Kann es sein das Regedit automatisch mit hoeheren Rechten als ein "normales" Programm laeuft und die "Verzeichnisse" gesperrt sind??? <br>Ist das dann ein Konfigurationsfehler das ich mit Regedit dran komme (per Hand eingetragen startet mein Programm so wie es soll beim System start) oder hat MS da mal wieder geschlunzt??

                      Comment


                      • #12
                        Hallo,

                        also bei NT ist das So:

                        - in HKEY_LOCAL_MACHINE können nur Anwendungen schreiben die vom Admin ausgeführt werden (Setup oder so)
                        - lesen kann jeder, der Schlüssel muß dann aber mit OpenKeyReadOnly geöffnet werden
                        - mit Regedit kan auch jeder den Schlüssel bearbeiten (MS rechnet wohl nicht damit, daß der Normalanwender so etwas macht)
                        - in HKEY_CURRENT_USER darf natürlich jeder Benutzer und alle von ihm ausgeführten Anwendungen schreiben
                        (ist ja auch sein Privater Schlüssel)

                        Gruß Grego

                        Comment

                        Working...
                        X