myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Variablen Installationspfad in einer Reg.-Datei angeben (https://mygully.com/showthread.php?t=2052345)

pcblizzard 29.05.10 03:24

Variablen Installationspfad in einer Reg.-Datei angeben
 
Also folgende Situation:
Ich habe ein eigenes Setup von einem Game erstellt. Wenn ich das jetzt installiere, kommt in dem AutoRun Menü, das nach der Installation erscheint, nicht der Button "Spielen" zum Vorschein sondern der Button "Installieren" (welcher aber nicht funktioniert). So nun ist die Rechnung einfach, das Spiel sucht in der Registry nach dem Installation-Pfad welches ja an sich kein Problem darstellt, einfach den Reg.-Schlüssel exportieren und im InnoSetup die Reg.-Datei angeben so dass die während der Installation geschrieben wird.


Problem:
Da ja nicht jeder Usern das Spiel nach zb. C:\Programme\...\... installiert sondern zb. auch nach D:\Games... kann ich nicht jedem zumuten, in der Reg.-Datei, den InstallPath von Hand anzupassen. Deshalb bräuchte ich einen variablen Wert, der automatisch die richtige Pfadangabe des Installationsordners in der Reg.-Datei schreibt.


Hoffe man versteht was ich meine und bräuchte :)


Gruß blizz

gosha16 29.05.10 09:36

Wenn der Installationspfad im Setup verfügbar ist dann kannst du das mit batch lösen.
(befehl: "reg add")
Also du erstellst eine batch datei die vom Setup gestartet wird und als Parameter den Pfad mitbekommt.
Diese Batch Datei erstellt dann den Schlüssel.
Ansonsten sag mal was für Möglichkeiten dir in dem Setup offen stehen?

haze303 29.05.10 12:24

Die Pfadangabe ist bestimmt in einer Variablen gespeichert, bzw. lässt sich in einer Variablen speichern.
Nun könntest du einfach die Reg-Datei via TextStream oder ReadLine einlesen und die Zeile entsprechend durch die Pfadangabe in der Variablen ersetzen.

pcblizzard 29.05.10 13:14

Also während des Setups kann ich sagen, das es .ini Files schreiben bzw. Reg.-Einträge in die Registry eintragen soll und das er nach der De-Installation Programme/Files ausführen soll. Installationspfade können ebenfalls, nach eigenen Wünsche, abgeändert werden.

Kommt dann in der Batchdatei nur dieser eine "reg add" Befehl oder mehr? Hab noch nich 'ne batchdatei geschrieben :o Kann mich aber an so "echo" Befehle erinnern.

haze303 29.05.10 16:08

Könntest du mal dein Installationss***** posten? Damit man sehen kann, wie du mit dem Registrywert arbeitest und ob es möglich ist, eine variable Abfrage einzubauen.
Bzw. das man generell mal sieht, um welche Pfade es sich handelt.

pcblizzard 29.05.10 16:40

Klar kein Probem:
Standartgemäß wird halt immer nach "C:\Program Files (x86)\..." installiert, die User können aber wie gesagt den Installationspfad abändern (die Registryeinträge ganz unten funktionieren nicht wirklich, sie werden zwar eingetragen aber wenn ich das Game installiere (über das eigene Setup) steht halt immer noch "Installieren" und nicht "Spielen" im AutoRun Menü da)

haze303 29.05.10 16:51

Dank dir, kannst du noch das Regfile posten, mit dem Wert, welcher in der Registry bei der Installation geschrieben werden soll?
Kann auch ruhig der Standardpfad sein. Ich weiss ja, dass dieser Pfad später mal zu einem vom User ausgewählten wird. (Im besten Fall)

Erstmal ein wenig Überblick verschaffen - reindenken und verstehen was Anfang und Ende ist oder wie Start und Ziel im Detail definiert wird. :)

//Edit: Die #defines hattest du nur zum Test drin oder? Zumindest meine IDE kann diese nicht interpretieren.

pcblizzard 29.05.10 18:16

Hier mal die Reg.-Files: [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] oder [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
Die #defines werden immer von InnoSetup erzeugt und werden auch mit kompiliert

Das komische an den Reg.-Files ist, das ich BG_2_0_Windows_32-Bit.reg & BG_2_0_Windows_64-Bit.reg bzw. BG_2_2_Windows_32-Bit.reg & BG_2_2_Windows_64-Bit.reg nicht in InnoSetup direkt einfügen kann (die Werte habe ich manuel hinzugefügt) nur BG_2_1_Windows_32-Bit.reg & BG_2_1_Windows_64-Bit.reg ließen sich integrieren.

haze303 29.05.10 20:00

Kann das sein, dass die Spiele ohne Angabe der Pfade in der Registry laufen oder fehlt der Teil bzw. das Regfile, wo die entsprechende Pfadangabe hinzeigt?

Hast du die Regfiles aus deiner Registry exportiert, nachdem du die Spiele bei dir installiert hattest?
Hat deine erstellte Setuproutine am Anfang oder während der Installation durch die UAC nach Adminrechten gefragt? (Nur relevant bei Vista und Windows 7 - XP läuft sowieso bei jedem unter dem Administrator-Account :))
Wenn nicht, dann versuche mal aus Spaß das Setup mit Adminrechten zu starten, denn sobald "etwas" in HKEY_LOCAL_MACHINE schreiben möchte, werden für diesen Vorgang Adminrechte verlangt.

Fragen über Fragen... :)

//Edit:

[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

pcblizzard 29.05.10 20:48

Macht nix solange die Fragen zum Erfolg führen, schmeißt mit Fragen nur so um euch :)

Ja die Reg.-File exportierte ich, nachdem ich Baldurs Gate II samt AddOn und Patch installiert hatte.

Der erste Baldurs Gate Teil samt AddOn funktionierte ebenfalls zum Anfang nicht, nachdem ich aber aus der Registry den Schlüssel exportiert hatte und dem Setup gesagt hat, er soll während der Installation die Angaben in der Registry schreiben, funktionierte es.

Hier mal die 32-Bit Reg.-File vom ersten Baldurs Gate Teil:

Also da ist auch keine spezielle Pfadangabe aber ohne wollte Reg.-Eintrag wollte das Game nicht starten, mit, starte es ohne Probleme.

Das Setup wird allgemein, zumindest bei mir, mit Admin-Rechten gestartet.


Gruß blizz

haze303 29.05.10 21:31

Zitat:

Zitat von pcblizzard (Beitrag 20818052)
Hier mal die 32-Bit Reg.-File vom ersten Baldurs Gate Teil:

Der Auszug ist gut - der Unterscheidet sich von den Regfiles, welche ich mir von dir gezogen habe. In den Regfiles haben, im Gegensatz zu deinem Auszug im Spoiler, ein paar Werte gefehlt.

Kannst du von den anderen Teilen auch so einen Auszug, wie der im Spoiler bereitstellen?

Ich denke, dann kann ich das ding hier final abändern und es dir wieder posten.

pcblizzard 29.05.10 22:06

Weiß zwar nicht ob ich das gerade richtig verstanden habe aber ich mach mal^^

Baldurs Gate 1 (für den zweiten Baldurs Gate Teil unwichtig):


Baldurs Gate 2:






Das sind alle Reg.-Einträge die ich habe, mehr gibt es nicht bzw. naja außer die 64-Bit Registry Einträge aber die unterscheiden sich ja nur durch den "\Wow6432Node\" Eintrag nach SOFTWARE.

haze303 29.05.10 22:39

Zitat:

Zitat von pcblizzard (Beitrag 20818229)
Weiß zwar nicht ob ich das gerade richtig verstanden habe aber ich mach mal^^

Baldurs Gate 1 (für den zweiten Baldurs Gate Teil unwichtig):


Baldurs Gate 2:






Das sind alle Reg.-Einträge die ich habe, mehr gibt es nicht bzw. naja außer die 64-Bit Registry Einträge aber die unterscheiden sich ja nur durch den "\Wow6432Node\" Eintrag nach SOFTWARE.


Super, genau das ist es, was mir noch gefehlt hat.

Schade, dass ich die Spiele nicht hier habe, sonst hätte ich es gleich mal testen können. Ich hoffe es funktioniert.

Füge das mal in dein Installationss***** ein und lösche vorher deine Registrydaten aus dem S***** raus.


pcblizzard 29.05.10 23:13

Hm, ne will auch noch nicht so wirklich. Es kommt immer noch der "Installieren" Button anstatt der Spielen Button zum vorschein.

haze303 29.05.10 23:52

Irgend ein Key fehlt noch oder vllt. gibt eine eine .INI Datei, in der die Pfade stehen, aber das ist jetzt mal nur ins Blaue geraten.

Ich schau mal, ob ich meine CDs finde - die müssten noch im Keller sein. Trifft sich ganz gut, dann habe ich auch mal wieder ein tolles Spiel installiert. :)

pcblizzard 30.05.10 16:45

Sorry für die späte Antwort,

jo .ini Files gibt es:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

aber daraus werde ich immo nicht so wirklich schlau :).

nooneonearth 31.05.10 19:58

Hey, hast du mal mit Process Monitor geschaut, auf welche Dateien oder Registry-Einträge der Launcher beim Start zugreift?

pcblizzard 01.06.10 13:58

Ne das nicht aber werde es mal ausprobieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.