Scripte und Pfad-Variablen

Fragen zum AKInstaller
Antworten
Manfred Lutz

Scripte und Pfad-Variablen

Beitrag von Manfred Lutz »

Guten Abend,
ich versuche vergeblich über Scripte Pfad-Variablen zu beschreiben.
Es soll aus der Registry ein Wert ausgelesen werden, welcher Pfad und EXE-Datei enthält. Dieser Wert soll in Pfad und Datei-Name getrennt werden und je einer Variablen zugewiesen werden, die später im Setup zur Erstellung von Verknüpfungen und INI-Datei-Einträgen verwendet werden sollen.
Das Auslesen der Registry und das Splitten des Wertes in Pfad und Datei funktioniert prima, jedoch kann ich weder mit SET noch mit SETPATHVAR die entsprechenden Werte in den Pfad-Variablen ablegen. Einzelschritt im Script zeigt alles richtig an, jedoch werden die Verknüpfungen nicht erstellt und die INI-Einträge enthalten den Namen der Pfadvariablen statt deren Wert.
Wer kann mir helfen?

Gruss
Manfred Lutz
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Bitte mal die *.STP-Datei mailen, dann schau ich mal was da überhaupt ablaufen soll.

Mit freundlichen Grüßen
A.Kapust
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Ich habe mir das Projekt (TestSetup.stp) mal angesehen und habe folgenden Fehler gefunden:
Im Script lesen Sie den Pfad mit GetRegKey aus HKEY_CLASSES_ROOT\XYZ\shell\open\command\ aus und löschen dann "%1" mittels ReplaceString. Das Resultat wird in eine Variable geschrieben und anschließend der Pfad mit SplitPath abgetrennt. Bis jetzt ok. Doch dann wird versucht mit SetPathVar dieses in <REG_PATH1> abzulegen.
Dieses ist aber eine private Variable, die von außen nicht gesetzt werden kann!

Um das Ganze zum laufen zu kriegen muss nur folgendes getan werden:
Das Ergebnis aus SplitPath wird in eine eigene Variable verfrachtet z.B. <PRG1PATH>.
Auf der Seite Installationsverzeichnis wird in Datenverzeichnis1 <REG_PATH1>\ durch <PRG1PATH>.\ ersetzt.
Auf Setup-Einstellungen wird der Schalter Eigene Platzhalter nutzen angeklickt. Das war es.

Als Tipp:
Statt HKEY_CLASSES_ROOT\XYZ\shell\open\command\ wurde ich mal sehen, ob sich die Applikation nicht unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ abgreifen lässt. Dann spart man sich das Zerlegen des Pfads.

Mit freundlichen Grüßen
Andreas Kapust
Manfred Lutz

Beitrag von Manfred Lutz »

Hallo Herr Kapust,

vielen Dank für Ihre Hilfe. Ich bin nun ein paar Schritte weiter. Es bleibt jedoch noch ein Problem: Wie kann ich verhindern, das an Eigene Platzhalter ein Backslash angehängt wird?
Ich möchte in den Namen eine EXE-Datei in einem Eigenen Platzhalter ablegen und mit diesem Platzhalter eine Verknüpfung aufbauen. Im Moment wird die Verknüpfung vom Installer nicht angelegt, weil dem Dateinamen ein Backslash angehängt ist.

Gruss
Manfred Lutz
Manfred Lutz

Beitrag von Manfred Lutz »

Hallo Herr Kapust,

vielen Dank für die Erweiterung des Sriptbefehls SetPathVar.
Das Setup für die Einzelplatzversion unseres Programms habe ich damit fertigstellen können (sieht toll aus und war super einfach !!!).
Für die Netzwerkversion benötige ich noch einen Eingabemöglichkeit, um die IP-Adresse bzw. den Hostnamen des Datenbankservers durch den Anwender festlegen zu lassen. Diese muß dann während des Setup´s in die INI-Datei des Datenbank-Clients geschrieben werden.
Haben Sie eine Idee, wie dies zu bewerkstelligen wäre?

Nochmal vielen Dank für Ihre prompte Hilfe (eine angenehme, lobenswerte Ausnahme in der heutigen EDV-Landschaft).

Gruß
Manfred Lutz
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Manfred Lutz hat geschrieben:IP-Adresse bzw. den Hostnamen des Datenbankservers durch den Anwender festlegen zu lassen. Diese muß dann während des Setup´s in die INI-Datei des Datenbank-Clients geschrieben werden.
Da würde ich ein kleines Programm vorschlagen, welches im PrgStart eingetragen, die nötige Maske zur Verfügung stellt und die Daten als 'Platzhalter' ablegt. Da die Ini-Funktion die P-Routine ebenfalls aufruft, werden die Variablen somit in der Ini-Funktion abgelegt.

Alternativ kann man dafür die Reistrieren-Seite im Setup nutzen und statt des RegChkPrgs ein eigenes aufrufen, welches die Angaben überprüft und dann als Variablen ablegt.

Gruß
A.K.

[Edit]
Mit Version 3.0.420 gibt es ein paar Änderungen, die dem Weg oben entgegen kommen:
-Die Daten lassen sich nun als Variablen (nicht Pfadvariablen) ablegen.
-Die Daten werden unmittelbar nach dem Klick auf Weiter abgelegt.
-Die Eingabefelder werden und nur abgestellt, wenn ein CheckProgramm gestartet wurde.

Ich hoffe das ist hilfreich. 8)
Antworten