Autor Beitrag
lippi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Sa 18.01.03 16:41 
hi, ich sollte unter winNT ein programm in den autostart der regedit einfügen.

uses registry;
das weiss ich schon mal...

jedoch wie ich da was eintrage und wie ich den autostart ordner finde. kann mir einer helfen??

thx im voraus. mfg lippi
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Sa 18.01.03 19:00 
Hi,

so:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure AddToAutostart(Name, File: String);
var
  REG: TRegistry;
begin
  REG:=TRegistry.Create;
  REG.RootKey:=HKEY_CURRENT_USER; //bzw HKEY_LOCAL_MACHINE für alle User!
  REG.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run\',true);
  REG.WriteString(Name,File);
  REG.CloseKey;
  REG.Free;
end;


Aufrufen kannst du es dann z.B. so:
ausblenden Quelltext
1:
AddToAutostart('Mein Programm',Application.ExeName);					


Au'revoir,
Aya~
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 18.01.03 22:29 
Aya hat folgendes geschrieben:
so:

Nee, so nicht. :wink: So:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
REG:=TRegistry.Create;

with REG do try
  RootKey := HKEY_CURRENT_USER;

  if(OpenKey('Software\Microsoft\Windows\CurrentVersion\Run\',
    true)) then
  begin
    WriteString(Name,File);
    CloseKey;
  end;
finally
  Free;
end;

Und HKEY_LOCAL_MACHINE kann man nur nehmen, wenn man Admin-Rechte hat. Sonst wird´s nichts mit dem Reinschreiben. Mit der Suchfunktion lässt sich eine passende Funktion übrigens finden - um der Frage vorzubeugen:

"Wie kriege ich heraus, ob ich Admin-Rechte habe?"
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Sa 18.01.03 22:33 
mh... und, was ist jetzt an deiner funktion anders als an meiner??? :roll:

Mal davon abgesehen das bei dir die Zeile:
ausblenden Quelltext
1:
if(OpenKey('Software\Microsoft\Windows\CurrentVersion\Run\',true)) then					

ziemlich sinnlos ist, da sie IMMER true sein wird... :)
Denn durch das "true" im aufruf OpenKey sagst du das das verzeichniss erstellt werden soll, sofern es nicht existiert...

sollte es ein schreibfehler sein und es sollte false dastehen, bedenkst du eine wichige sache nicht... es kann zwar sein das der Ordner nicht existiert, er ist jedoch IMMER an dieser stelle... und, soll etwa nur weil der Ordner nicht existiert kein Autostart erstellt werden...? Wäre doch doof, oder? :)

Au'revoir,
Aya~
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 18.01.03 22:39 
Aya hat folgendes geschrieben:
Mal davon abgesehen das bei dir die Zeile ... ziemlich sinnlos ist, da sie IMMER true sein wird... :)

Glaube ich nicht, denn ...
Zitat:
Denn durch das "true" im aufruf OpenKey sagst du das das verzeichniss erstellt werden soll, sofern es nicht existiert...

Und wenn das aus irgendeinem Grund nicht klappt?

Außerdem fehlt in deinem Code das IMHO wichtige
ausblenden Quelltext
1:
2:
3:
try
finally
end;

als Schutz, um z.B. auch Fehler beim Erzeugen des Eintrags abzufangen. Probier das Beispiel doch einfach mal aus: mit eingeschränkten Rechten unter Win NT/2000/XP und dem Schlüssel HKEY_LOCAL_MACHINE.

Dann wirst du wissen, wo die Unterschiede liegen.
lippi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: So 19.01.03 13:58 
vielen dank für eure schnelle und sehr hilfreiche hilfe!!!

dieses board ist echt genial!!!


thx lippi
Trallewatsch
Hält's aus hier
Beiträge: 7

XP, Win 98
Delphi
BeitragVerfasst: Sa 08.02.03 10:34 
Titel: Eintrag in Autostart
Hallo,

bei mir mit XP klappt das nicht. In der Registrierung ist zwar mein gewünschter Eintrag drin, aber nicht wirksam. Im Menü Startknopf/Alle Programme/Autostart ist es jedoch nicht enthalten.

Habe HKEY_LOCAL_MACHINE und auch HKEY_CURRENT_USER probiert.

_________________
[b:6c422201f2][color=red:6c422201f2]Trallewatsch[/color:6c422201f2]
... einfach zum Drücken[/b:6c422201f2]
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 08.02.03 11:37 
Programme, die in den Run-Schlüsseln der Registry stehen, erscheinen nicht im Autostart-Ordner. Soll dein Programm im Autostart-Ordner des Startmenüs erscheinen, mußt du ein Link im Autostart-Ordner des entsprechenden Benutzers anlegen.