Parameter an Anwendungen übergeben

Fragen zum AKInstaller
Antworten
taiskorgon
Beiträge: 44
Registriert: 09.02.2007, 16:58

Parameter an Anwendungen übergeben

Beitrag von taiskorgon »

Hallo,

ich habe da mal noch eine Frage. Die Anwendung, die ich unter "Programme starten" "nach der Installation" aufrufe, erwartet als Parameter <SETUPDIR> und <INSTALLDIR>. Diese Pfadangaben können Leerzeichen enthalten. Wie übergibt man diese Parameter korrekt? Weder
<SETUPDIR> <INSTALLDIR>
(jedes Leerzeichen wird nun als Parametertrennzeichen interpretiert)
noch
"<SETUPDIR>" "<INSTALLDIR>"
(hier erhalte ich nur einen Parameter in der Form
'c:\temp\Installtest" c:\temp\InstallTarget"')
führen zum erwarteten Ergebnis. Ich könnte letzteren Parameter an " teilen, aber es gibt doch bestimmt eine andere Möglichkeit?

tia
Stefan Simon
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Ich fürschte, mir ist nicht ganz klar was der Parameter <SETUPDIR> <INSTALLDIR> soll?

<SETUPDIR> ist der Pfad der Setup.exe,
<INSTALLDIR> der Pfad der installierten Anwendung.

Wenn Sie beides benötigen, wäre der Parameter "<SETUPDIR>" "<INSTALLDIR>".

Mit freundlichen Grüßen
A. Kapust
taiskorgon
Beiträge: 44
Registriert: 09.02.2007, 16:58

Beitrag von taiskorgon »

Hallo Herr Kapust,

wie oben schon beschrieben, funktioniert "<SETUPDIR>" "<INSTALLDIR>"
nicht wie erwartet. Ich übergebe beide Pfadangaben an eine .Net Anwendung, der angekommene Parameter lautet
dort 'c:\temp\Install Test" c:\temp\Install Target"'.

Also statt:
Dim f() As String = System.Environment.GetCommandLineArgs
Dim Param1 as String = f(1)
Dim Param2 as String = f(2)

muss ich den Parameter selbst trennen:
Dim f() As String = System.Environment.GetCommandLineArgs
Dim Param1 as String = Split(f(1), """")(0)
Dim Param2 as String = Split(f(1), """")(1)

Klar geht das notfalls, aber ich weiß nicht, ob in einer zukünftigen Version des Installers die Pfade vielleicht doch mal als 2 Parameter übergeben werden.

mfg
Stefan Simon
Andreas Kapust
Administrator
Beiträge: 1085
Registriert: 29.02.2004, 15:51
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Andreas Kapust »

Guten Tag!

Sie benötigen also beide Pfade als ein Parameter.
Da die Pfad Leerzeichen enthalten, muss der Parameter in Anführungszeichen stehen, klar.
An der Parameterübergabe im Installer wird sich nichts ändern. Es wird also nichts in der Form geben "Parameter".

Entweder Sie benutzen "<SETUPDIR>" "<INSTALLDIR>" oder machen es z. B. so "*<SETUPDIR>* *<INSTALLDIR>*".
Dann filtern Sie alles zwichen * * als Pfad. Oder so: "<SETUPDIR>,<INSTALLDIR>".

Letzteres ist wohl die beste Möglichkeit.

Gruß
A.Kapust
Antworten