Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   wie Datei per regedit.exe (statt reg.exe) importieren? (https://www.delphipraxis.net/104442-wie-datei-per-regedit-exe-statt-reg-exe-importieren.html)

himitsu 4. Dez 2007 11:47


wie Datei per regedit.exe (statt reg.exe) importieren?
 
Moin ihr,

hab endlich rausgefunden warum hier einiges nicht läuft.

Und zwar versuche ich über reg.exe eine *.reg-Datei zu importieren, aber dabei werden Typen wie REG_EXPAND_SZ leider nicht mit eingefügt. :cry:

So definiert (*.reg) werden nur" die normalen Strings wie name2 importiert:
Code:
Windows Registry Editor Version 5.00

...
"name"=hex(2):22,00,25,00,46,00,4e,00,53,00,45,00,6e,00,74,00,50,00,...
"name2="wert"
über reg.exe IMPORT File.reg wird die Datei ohne Nachfrage importiert,
wenn ich aber nur File.reg aufrufe (in einer Batchfile), dann kommt ja die bekannte Nachfrage:
Zitat:

---------------------------
Registrierungs-Editor
---------------------------
Möchten Sie die Informationen in D:\ ... \File.reg zu der Registrierung hinzufügen?
---------------------------
Ja Nein
---------------------------
Hab nun lange gesucht und rausgefunden, daß einzeln aufgerufene .Reg-Dateien über den "Plain Text persistent handler" an Regedit.exe weitergeleitet werden,

aber wenn ich die Datei per regedit.exe File.reg imporieren möchte, dann geht es zwar, aber es kommt immernoch diese Nachfrage.

regedit.exe IMPORT File.reg geht auch nicht ... schlimmer noch, dann da möchte der Regeditor auch noch eine Datei namens "IMPORT" importieren.

regedit.exe -? hilft ebenfalls nicht, denn dieses öffnet nur den Editor.
regedit.exe -IMPORT File.reg und regedit.exe /IMPORT File.reg macht überhaupt nichts :shock:


Ja und es wäre schön, wenn es möglichst ohne Fremdprogramme geht, weil sonst könnte ich das ja selber per Delphi eintragen.


[add]
hab grad gesehn, daß ich per dieses reg.exe ADD /t REG_EXPAND_SZ direckt über die Batch machen könnte, abr dann müßte ich alles einzeln erstellen ._.

wär also schön, wenn jemand eine lösung mir .Reg-Datei kennen würde.


ja und schonmal Danke für's durchlesen :kiss:

Neotracer64 4. Dez 2007 12:16

Re: wie Datei per regedit.exe (statt reg.exe) importieren?
 
Ich glaub so gehts:

Zitat:

regedt32 -s file.reg

RavenIV 4. Dez 2007 12:22

Re: wie Datei per regedit.exe (statt reg.exe) importieren?
 
es geht auch so:

Code:
regedit.exe -s test.reg

Neotracer64 4. Dez 2007 12:25

Re: wie Datei per regedit.exe (statt reg.exe) importieren?
 
Ja, aber ich glaube unter Win2000 wird REG_EXPAND_SZ von der normalen Regedit.exe nicht unterstützt.

RavenIV 4. Dez 2007 12:27

Re: wie Datei per regedit.exe (statt reg.exe) importieren?
 
Zitat:

Zitat von Neotracer64
Ja, aber ich glaube unter Win2000 wird REG_EXPAND_SZ von der normalen Regedit.exe nicht unterstützt.

Du hast nirgends geschrieben, dass es auch unter Win2000 funktionieren soll.
Also bin ich von WinXP ausgegangen...

Neotracer64 4. Dez 2007 12:31

Re: wie Datei per regedit.exe (statt reg.exe) importieren?
 
Ich? xD himitsu muss es doch wissen.
Aber wie ich grad sehe, sieht es nochmal anders aus:

Zitat:

Zitat von http://support.microsoft.com/kb/141377/de
Windows NT 4.0 und Windows 2000:
[...]
Regedit.exe
Sie können die Wertdatentypen REG_EXPAND_SZ und REG_MULTI_SZ nicht anzeigen, bearbeiten oder suchen. Wenn Sie versuchen, einen REG_EXPAND_SZ-Wert anzuzeigen, wird dieser von Regedit.exe als binärer Datentyp angezeigt. Wenn Sie versuchen, einen dieser Datentypen zu bearbeiten, wird er von Regedit.exe als REG_SZ gespeichert, und der Datentyp nimmt nicht mehr seine eigentliche Funktion wahr.
[...]
Hinweis: Im Gegensatz zu Regedit.exe unterstützt Regedt32.exe das Importieren und Exportieren von .reg-Dateien (Registrierungseinträgen) nicht.

Die Frage ist jetzt Hinzufügen geht noch, oder wie? Aber vlt. ist die Unterstützung für Win2000 himitsu auch nicht so wichtig. Muss er sehen. ;)

himitsu 4. Dez 2007 12:46

Re: wie Datei per regedit.exe (statt reg.exe) importieren?
 
-s funktioniert ... danke erstmal ... aber leider ist regedit.exe blöd programmiert, sie Liefert keinen ErrorCode :cry:

Reg.exe liefert einen Fehlercode wenn etwas schiefging (z.B. Datei nicht gefunden)
Code:
reg.exe IMPORT %RegFile%
IF ERRORLEVEL 1 ...fehler...
aber damit werd' ich versuchen zu leben (zumindestens kommt noch ein Fehler, wenn die regedit.exe selbst nicht geladen werden konnte)



hmmm, das mit dem Win2000 müßte man mal prüfen, obwohl es doch eigentlich funktionieren müßte?

weil nur bei diesen Werten werden die Umgebungsvariablen beim Auslesen "automatisch" aufgelößt.


@Neotracer64:
naj, eigentlich hab ich mein Programm bisher versucht bis runter zu Win2000pro kompatibel zu machen.

der String is ja in der Reg-Datei binär drin (siehe oben) ... vielleicht geht es dadurch dennoch
ach, ich hatte eh vor mein Win2000 mal wieder zu installieren ^^
(nach'm letzen Systemchrash hatte ich mir ja nicht die Mühe gemacht die VM's zu retten :oops: )



@all: macht es denn einen Unterschied, ob ich regedt32.exe oder regedit.exe verwende?
ok, jetzt gelesen hab ... also regedit.exe :angel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr.

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