Finden des Ausführungspfades

Fragen zum AKInstallerMSI
obelix
Beiträge: 22
Registriert: 06.03.2007, 13:00

Finden des Ausführungspfades

Beitrag von obelix »

Guten Tag

Ich habe die Aufgabe ein NetSetup zu machen,
hier ist die Idee wenn ein Benutzer ein Programm auf einem Server installiert hat, (ohne registry einträge) dass der Benutzer an
der Domaine ein MSI ausführen kann welches auf seiner Maschine die registry einträge installiert.

So weit funktioniert es gut, jedoch soll dieser Benutzer noch zusätzlich
eine verknüpfung auf dem Desktop haben, hier liegt das Problem. Wie bekomme ich den Pfad der Installierten Exe Datei, damit ich von ihr eine
Verknüpfung machen kann.

Programmpfad:
...ProgrammFiles\[Freie Wahl durch benutzer]\[Programmdaten]
...ProgrammFiles\[Freie Wahl durch benutzer]\NetSetup\

die exe liegt im Programmdatenteil und die MSIs im NetSetup teil.
Wie krige ich jetzt den Pfad der Exe heraus?

danke für Ihre Bemühungen im voraus.
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Dazu ein paar Fragen:

Unter "ProgrammFiles\[Freie Wahl durch benutzer]\[Programmdaten]" kann ich mir nicht viel vorstellen, geschieht das im MSI?
Der Ort wird doch einer Eigenschaft oder einem Verzeichnis zugeordnet oder wie ist der Ablauf?

Falls ja, lässt sich das Ziel des Link mittels [VARIABLE]Programm.exe festlegen. VARIABLE ist entweder der Ordner oder die Eigenschaft, die der Benutzer mit der Auswahl des Pfad setzt.

Wenn es das nicht ist, benötige ich mehr Informationen.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
obelix
Beiträge: 22
Registriert: 06.03.2007, 13:00

Beitrag von obelix »

salu

ok.

Also der Kunde installiert mit einem MSI Paket (vom AKInstallerMSI)
das Programm mit einem integrierten MSI Paket NetSetup, welches in
den Installdir\NetSetup installiert wird. Der Benutzer kann bei der Installation
frei wählen wo hin es installiert werden soll also zb.

\\server01\programm\...
C:\programmfiles\programm'\...

Jetzt kommt ein Domainen Benutzer und geht auf den Ordner
\\server01\programm\NetSetup\ und kann dort das MSI Paket welches
bei der installation erstellt wurde ausführen.

bei dieser Installation weiss ich nicht den genauen Pfad von der Exe des
Hauptprogrammes, somit kann ich keine Verknüpfung zur exe erstellen.

In der Registrie des Servers steht es der pfad zwar drin, doch es wird ja
die registrie des ausführenden PCs getestet und nicht vom verfügungs
stellenden PCs.
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Hi!

Dann würde ich im Installationsverzeichnis von NetSetup eine Ini-Datei anlegen, die den Pfad der Exe beinhaltet.

Diese wird dann beim Start von "NetSetup" über eine CA oder "Daten suchen" ausgelesen und damit die entsprechende Eigenschaft gesetzt.

Schon geht es. :D
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
obelix
Beiträge: 22
Registriert: 06.03.2007, 13:00

Auslesen von Ini dateien.

Beitrag von obelix »

danke erstmal für die Antwort.


Habe jetzt eine ini erstellt mit dem Programm jedoch, wie kann ich diese
mit der Suchoption wieder einlesen?
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Hi!

Wenn NetSetup auch ein Msi ist, sollte als suchpfad [SourceDir] reichen.
obelix
Beiträge: 22
Registriert: 06.03.2007, 13:00

Beitrag von obelix »

Hallo,

dies klappt nicht ganz, 'kriege nur C:\\ als Resultat zurück und nicht der Pfad,
das mit Ini-Datei wäre sicher das beste nur wie liest man eine kreierte Ini-Ddatei von AKInstallerMsi wieder ein?
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Hallo!

Daten suchen und Ini scheitert leider (das hatte ich vergessen) daran, dass sich die Ini-Datei im Windows-Verzeichnis befinden muss. :(

Es bleibt also vorerst nur der Weg über eine CA. Entweder per Skript durch das Auslesen der Eigenschaft SourceDir und anschließendem Lesen der Ini und natürlich dem Setzen einer neuen Eigenschaft oder halt per DLL mit gleichem Ablauf. Ich setze diese Funktionalität mal auf die ToDo-Liste.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
obelix
Beiträge: 22
Registriert: 06.03.2007, 13:00

Beitrag von obelix »

Danke für ihre Antwort.

Habe inzwischen noch einbischen geübt und bin zur Lösung mit SourceDir
zurück gekommen. Dies funktioniert super sogar mit UNC Pfad.

[SourceDir]..\project.exe

so geht es eine Ordnerebene zurück und macht ein shortcut von der project.exe.

jedoch kann ich das Arbeitsverzeichnis nicht auf dieselbe weise einstellen
da dieses nur Ordner aus dem installer akzeptiert.

Haben sie eine Idee wie man dies lösen könnte?
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Kurze Frage, was ist mit Arbeitsverzeichnis "gemeint"?

Sprich, wie oder besser was wollen Sie von Main-Setup erfahren?
Das INSTALLDIR des Mainsetups (welches ja auf dem lokalen PC ausgeführt wurde)?
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
obelix
Beiträge: 22
Registriert: 06.03.2007, 13:00

Beitrag von obelix »

Salu

Eigentlich will ich ja den Installationsort von der Main installation welche auf dem Server liegt.
Dort ist ja das NetSetup auch angesiedelt.

Den Pfad von NetSetup bekomme ich ja mit

[SourceDir] und mit ..\ gehe ich eine Ordner ebene zurück, klappt
ja soweit.

Jedoch beim erstellen einer Externen Verknüpfung kann man ja Ziel des Linkes angeben:

[SourceDir]..\project.exe

habe ich hier verwendet. Doch es gibt noch die Option Arbeitsverzeichnis,
welche bei einem Shortcut ja soviel wie Start in ist. diese möchte ich gerne auf den Pfad [SourceDir] setzen.
obelix
Beiträge: 22
Registriert: 06.03.2007, 13:00

Beitrag von obelix »

sorry auf [SourceDir]..\ würde ich es gerne Setzen.
obelix
Beiträge: 22
Registriert: 06.03.2007, 13:00

Beitrag von obelix »

Hallo

Wie könnte man dieses Problem lösen?
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Mir fehlt heute etwas die Zeit, ein Szenario aufzubauen.

Bitte mal probieren, ob diese geht:

Main.msi über "Daten suchen" suchen und das Suchergebnis (die Eigenschaft) dafür nutzen.

Ansonsten befasse ich mich, wenn die Zeit es erlaubt, morgen noch mal damit.
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Legen Sie diese Script als Getfolder.vbs in Ihrem Projektverzeichnis ab:

Code: Alles auswählen

Dim FSO
Dim obj
Set FSO = CreateObject("Scripting.FileSystemObject")
Set obj = FSO.GetFolder(Session.Property("SourceDir"))

Session.Property("MAIN_MSISETUP") = obj.ParentFolder.Path
und legen unter Benutzerdefinierte Aktionen eine neue CA an.

Scripttyp: VBScript
Speicherort: In Ressource
(Getfolder.vbs als Ressource einfügen)

Zeitpunkt: sofort
Häufigkeit: Nur einmal einbinden

Sequenzen:
Nach AppSearch in "Install Execute/UI" einfügen.
Bedingung: Not (REMOVE~="ALL")

Dateien-Seite:
Ordner über Eigenschaft -> Name = MainSetup -> Suchergebnis=MAIN_MSISETUP


Verknüpfungen (Externe Datei):
Ziel des Links: [MAIN_MSISETUP]MainSetup.exe

Arbeitsverzeichnis = MsiSetup
Mit freundlichen Grüßen,
AKApplications, Andreas Kapust
Antworten