Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi *.reg - Datei in die Registry schreiben (https://www.delphipraxis.net/56548-%2A-reg-datei-die-registry-schreiben.html)

ichbins 7. Nov 2005 18:20


*.reg - Datei in die Registry schreiben
 
Hi :hi:,

der Titel sagt eigentlich alles. Ich habe eine *.reg-Datei die mit einer beliebigen regedit-version erstellt wurde und möchte die in die Registry hinzufügen. Da so eine *.reg-Datei unheimlich komplex ist wollte ich fragen ob es noch eine andere Möglichkeit gibt als die Funktion selbst zu schreiben.

Den regedit.exe will ich deshalb nicht benutzen weil er eine Benutzerbestätigung benötigt und (bevor mir einer mit dem quiet-Modus kommt) auf einigen Systemen gesperrt ist. Kennt jemand eine Funktion (nonVCL) :?:

ichbins 7. Nov 2005 19:10

Re: *.reg - Datei in die Registry schreiben
 
weiss keiner was?

faux 7. Nov 2005 19:21

Re: *.reg - Datei in die Registry schreiben
 
Wenn regedit.exe auf dem System gesperrt ist, wird das schon seinen Sinn haben, würde ich mal sagen. :roll:

ichbins 7. Nov 2005 19:26

Re: *.reg - Datei in die Registry schreiben
 
nein, ich will es ja nicht selber machen, ich bin der Admin :mrgreen: ich will vielmehr ein eigenes Setup erstellen und da einige Progs wert darauf legen dass bei ihrem 1. Start schon ihrer registry-einträge bestehen, will ich eine Registry-Funktion is Setup integrieren.

faux 7. Nov 2005 19:27

Re: *.reg - Datei in die Registry schreiben
 
Machs halt einfach per Batch und reg.exe, oder verstehe ich da was falsch?

ichbins 7. Nov 2005 19:30

Re: *.reg - Datei in die Registry schreiben
 
wie geht das? (befehl)

ah, jetzt hab ichs selber :reg import filename, oder? läuft das auch wenn regedit gesperrt ist? (kompatibilität) benötigt der User Adminrechte?

Aber anstatt es über ne batch zu machen könnte ich reg.exe gleich so aufrufen:
Delphi-Quellcode:
  //gekürzt, andere Parameter weggelassen
  shellexecute('reg.exe','import '+filename);

Luckie 7. Nov 2005 19:32

Re: *.reg - Datei in die Registry schreiben
 
Wenn du der Admin bist und du nicht die gesperrtte regedit.exe benutzen kann, dann werfen sich bei mir einige Fragen auf. Unter anderem auch wo ein 14 jähriger Netzwerkadmin ist, in einem Netzwerk, wo ein anderer Administrator entschieden hat die regedit.exe selbst für die Administratoren zu sperren.

Also ich sehe, das so, entweder bist du dort Administrator, dann solltest du so etwas dürfen oder du bist es nicht, dann hat das schon seinen Sinn, dass du das nicht darfst.

ichbins 7. Nov 2005 19:38

Re: *.reg - Datei in die Registry schreiben
 
ich hab kein Netzwerk. Ich bin der Admin von meinem eigenen PC. Und das Tool soll ja in einem Setup verwendet werden.

//edit:
Mist,
Zitat:

Zitat von Win98cmd
Befehl oder Dateiname nicht gefunden


faux 7. Nov 2005 19:43

Re: *.reg - Datei in die Registry schreiben
 
reg.exe ist glaube ich nur bei Windows 2000, Windows XP Professional und Windows 2003 Server enthalten.
Wieso nimmst du nicht einfach ein Setup-System wie NSIS, InstallShield oder sonst irgendwas?

Wieso nimmst du nicht den bestehenden Funktionsumfand der registry.pas?

Grüße
Faux

ichbins 7. Nov 2005 19:47

Re: *.reg - Datei in die Registry schreiben
 
Zitat:

Zitat von faux
Wieso nimmst du nicht einfach ein Setup-System wie NSIS, InstallShield oder sonst irgendwas?

weil ich eben ein eigenes Setup schreiben will ;)

Zitat:

Zitat von faux
Wieso nimmst du nicht den bestehenden Funktionsumfand der registry.pas?

die erlaubt mir doch nicht, *.reg-Dateien in die Registry zu importieren?

@luckie: einen ganz normalen hkey_current_user-key darf doch jeder User editieren? das is bestimmt nicht verboten? und wenn ein "höherer" key wie hkey_local_machine angeschnitten wird verweigert das System ja sowieso bei einem "normalen" User

tommie-lie 7. Nov 2005 20:40

Re: *.reg - Datei in die Registry schreiben
 
Zitat:

Zitat von ichbins
@luckie: einen ganz normalen hkey_current_user-key darf doch jeder User editieren?

Jupp.
Zitat:

Zitat von ichbins
und wenn ein "höherer" key wie hkey_local_machine angeschnitten wird verweigert das System ja sowieso bei einem "normalen" User

Jupp.
Wo ist also das Problem? Installationen sollten typischerweise vom Admin durchgeführt werden, auf einem korrekt administrierten System hast du die nötigen Rechte auch mit regedit.exe.

Luckie 7. Nov 2005 20:44

Re: *.reg - Datei in die Registry schreiben
 
Dann schreib die Funktionen mit den Methoden von Delphi-Referenz durchsuchenTRegedit in die Registry. Aber normalerweise sollte Programme so programmiert sein, dass sie selber vorher prüfen, ob der Schlüssel existiert und bei Bedarf selber anlegen. Tun sie das nicht, dann wird das meist über das Setup geregelt. Wenn ich ein programm selber schreibe, dann bevorzuge ich das erstere Verhalten, dann hat man nachher weniger Ärger, wie man sieht.

faux 8. Nov 2005 18:26

Re: *.reg - Datei in die Registry schreiben
 
Zitat:

Zitat von Luckie
Dann schreib die Funktionen mit den Methoden von Delphi-Referenz durchsuchenTRegedit in die Registry.

Ganz meine Meinung. Das hab ich gemeint, wie ich die registry.pas erwähnte. ;)

Wenn du ein eigenes Setup schreibe willst, dann soll das doch unabhängig von anderen Programmes funktionieren (sprich regedit.exe oder reg.exe). Desweiteren musst du ja keine *.reg Datei nehmen, dukannst doch genau so gut ein eigenes Format nehmen, oder die Schlüsseln direkt in den Quelltext schreiben. Spricht was dagegen?

Grüße
Faux

Mystic 8. Nov 2005 18:54

Re: *.reg - Datei in die Registry schreiben
 
Regedit lässt sich auch mit dem Parameter /s aufrufen - dann wird nicht nach der Benutzerbestätigung gefragt. Allerdings wird auch keine Fehlermeldung angezeigt, falls ein Fehler auftreten sollte.

faux 8. Nov 2005 21:37

Re: *.reg - Datei in die Registry schreiben
 
Zitat:

Zitat von ichbins
Den regedit.exe will ich deshalb nicht benutzen weil er eine Benutzerbestätigung benötigt und (bevor mir einer mit dem quiet-Modus kommt) auf einigen Systemen gesperrt ist.



Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz