Autor |
Beitrag |
hibbert
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Mi 25.09.02 14:45
hallo,
ich weiß ja, dass dieses thema heiß diskutiert wird, aber meine fragen werden dadurch leider nie beantwortet
also, mit dem code HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run kann man eine datei in der registry zum autostart hinzufügen. aber ich kann mir nicht vorstellen, dass diese eine zeile reicht !! es gibt bestimmt noch mehrere zeilen. woher soll denn z.B. die registr wissen, wo sich das zu startenne programm befindet? Wenn jemand mein problem versteht und eine lösung kenn, nichts wie her damit !!!
DANKE
mfg hibbert
|
|
Tino
Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mi 25.09.02 14:55
Hast Du Dir mal mit dem Registrierungs-Editor den o. g. Schlüssel angeschaut?
Gruß
TINO
|
|
O'rallY
Beiträge: 563
|
Verfasst: Mi 25.09.02 15:59
Quelltext 1:
| HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run |
ist ja kein Code, sondern nut die Bezeichnung des Schlüssels in der Registry. Und wie Tino schon sagt, guck dir mal den Schlüssel an und die Funktionen der TRegistry-Klasse (OpenKey, WriteString, ...).
_________________ .oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
|
|
Udontknow
Beiträge: 2596
Win7
D2006 WIN32, .NET (C#)
|
Verfasst: Mi 25.09.02 16:03
Mag ja sein, daß manche noch die die Registry kennen gelernt haben!
Also: rufe mal das Proggie regedit32 bzw. regedit auf. Da siehste dann, was sich in der Registry so tut.
Cu,
Udontknow
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 25.09.02 21:37
hibbert hat folgendes geschrieben: | also, mit dem code HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run kann man eine datei in der registry zum autostart hinzufügen. |
Ja, nutze diesen Schlüssel, HKEY_LOCAL_MACHINE, und lass dein Programm mal auf allen bekannten NT-Systemen (NT, 2000, XP) mit allen bekannten Benutzerrechten testen.
Wenn du dein blaues Wunder erlebt hast (Stichwort: Benutzerrechte, oder: was passiert, wenn ich keine Admin-Rechte habe?), dann wirst du vielleicht auch auf den Gedanken kommen, stattdessen HKEY_CURRENT_USER zu nutzen.
Der Pfad ist der selbe ... die Fehler allerdings nicht.
|
|
hibbert
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Fr 27.09.02 17:17
|
|
bis11
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Fr 27.09.02 18:01
Probiere es mal so :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Button2Click(Sender: TObject); var reg : TRegistry; begin reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true); reg.WriteString('LoginDel','DelLogin.EXE'); reg.CloseKey; reg.Free; end; |
Damit führst Du das Programm "DelLogin.exe" dem Schlüssel zu. Es wird dann bei jedem mal anmelden ausgeführt, egal welche Benutzer sich anmeldet.
Moderiert von raziel: Code- durch Delphi-Tags ersetzt.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 28.09.02 09:07
bis11 hat folgendes geschrieben: | Damit führst Du das Programm "DelLogin.exe" dem Schlüssel zu. Es wird dann bei jedem mal anmelden ausgeführt, egal welche Benutzer sich anmeldet. |
Stimmt, aber -
Delphi-Quelltext 1:
| reg.RootKey := HKEY_LOCAL_MACHINE; |
Eintragen kann´s erst mal nur einer, der auch das Recht hat, auf diesen Schlüssel zuzugreifen.
Delphi-Quelltext 1:
| reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true); |
Mögliche Probleme beim Öffnen des Schlüssels, die durch das Anlegen (true) nicht behoben werden, werden hier völlig ignoriert
Delphi-Quelltext 1:
| reg.WriteString('LoginDel','DelLogin.EXE'); |
Ebenso die Tatsache, dass das Schreiben auch -aus irgendwelchen Gründen- schiefgehen kann.
Besser wäre also der viel verschmähte try-finally-Block. Eigentlich sogar zwei, wenn man die mögliche Exception bei "WriteString" mit berücksichtigt.
Moderiert von raziel: Code- durch Delphi-Tags ersetzt.
|
|
Jim_
Hält's aus hier
Beiträge: 3
Win XP Prof.
D3 Prof
|
Verfasst: Di 08.02.05 17:37
Zitat: | var
reg : TRegistry;
|
TRegistry ist bei mir ein undefinierter bezeichner.
Liegt das daran, dass ich Delphi3 benutze?
|
|
raziel
Beiträge: 2453
Arch Linux
JS (WebStorm), C#, C++/CLI, C++ (VS2013)
|
Verfasst: Di 08.02.05 17:40
Keineswegs. Du musst noch die Unit Registry einbinden:
Delphi-Quelltext
_________________ JSXGraph
|
|
WeBsPaCe
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Di 08.02.05 17:42
Nö. Wahrscheinlich hast du nur vergessen die Unit Registry oben bei uses einzubinden. Bei Delphi 3 ist das ganz sicher dabei! Das hab ich nämlich auch.
//EDIT: Zu spät...
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
Jim_
Hält's aus hier
Beiträge: 3
Win XP Prof.
D3 Prof
|
Verfasst: Di 08.02.05 19:36
Oh natürlich!
Ihr habt Recht das hab ich übersehen. thx
|
|