Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Variablen aus Benutzermasken übergen und Co.


1 reply to this topic

Leela

Leela
  • Members
  • 1 posts

Posted 13 March 2005 - 11:39

Hallo,

dies ist mein erster Post hier also erstmal ein biggrin.gif an die Community....

Ich "darf" für meine Firma die InstallShield 5.53 Setups in InstallShield für Windows Installer 1.1 migrieren. Nach mehreren erfolglosen Versuchen habe ich gelernt, dass migrieren wegen der vielen Unterschiede beider Programme wohl nicht möglich ist. Aus diesem Grund habe ich mich daran gemacht die Setups neu zu schreiben - ist ja auch die sauberste Lösung. Mit dem programmieren der Scripte (und davon benötigen unsere Programme reichlich) habe ich keine Probleme, ich hänge mehr an der grundsätzlichen Benutzerführung des Programms:

1) Eigene Benutzeroberflächen
-----------------------------------------
Ich habe die "ReadyToInstall" Benutzermaske im Editor erweitert, um dem Benutzer noch drei weitere Eingaben zu gestatten:
- Wahl eines Soundverzeichnisses (PushButton)
- Wahl eines Datenbankverzeichnisses (PushButton)
- Wahl eines Workstationnamens (Edit Field)

Bei den ersten beiden soll danach ein Folderselect Fenster aufgehen, bei dem der Benutzer jeweils ein Verzeichnis wählen kann (analog zur Verzeichniswahl in einem normalen Setup). Ein Default Pfad (und danach der gewählte) sollen rechts vom Button als Text sichtbar sein.
Bei der Wahl eines Workstationnamens soll ein Text eingegeben werden.

Alle drei Eingaben sollen nur dem Script übergeben werden, da diese Informationen primär nix mit dem Verhalten des Setups zu tun haben.

Mein erstes Problem ist, dass ich es nicht schaffe solche Verzeichnisfenster zu öffnen. Ich habe mir die Konfiguration von den Standartfenstern "CustomSetup" und "InstallChangeFolder" geklaut, bekomme im Testlauf aber beim Click auf einen dieser beiden Buttons aber die Fehlermeldung: Interner Fehler 2812. SelectionBrowse blink.gif

Desweiteren schaffe ich es nicht, neben den Buttons Standartpfade (z.B. C:\Sound -> eine Systemvariable wie WINSYSDISK wäre hier für mich sogar noch besser) anzeigen zu lassen.

Wie schon geschrieben sollen alle drei Eingaben dann an mein Script übergeben werden, damit ich dann dies weiterverarbeiten kann.

2) TARGETDIR, INSTALLDIR, nixkapier tongue.gif
----------------------------------------------------------------
Im InstallShield 5.53 war das noch einfach, ich hatte mein TARGETDIR welches ich nach Lust und Laune im Script verändern konnte. Nun bekommt mein TARGETDIR immer noch automatisch ein "\" am Ende des Strings, welches ich mit StrSub auch nicht entfernen kann. Wie geht das?

Unter Projekt\Produkt Eigenschaften\Zielordner habe ich WINSYSDISK\App eingetragen. Ich weiss nicht ob das an dieser Stelle korrekt ist, jedenfalls wird mir als Standartpfad im Setup dann C:\App angeboten, was für mich auch so korrekt ist.

Ich hoffe, Ihr könnt mir diese (zugegeben) Grundlegenden Fragen beantworten.


Vielen Dank,

Leela

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 14 March 2005 - 18:18

Du musst Property-Namen als Variablen für diese Werte vergeben (am besten in Großbuchstaben). Dem BrowseProperty übergibst du dann den jeweiligen Property-Namen, damit der Browse-Dialog weiss, wo er die Benutzerauswahl speichern soll. Du kannst für das property einen Defaultwerte vergeben, etwa durch eine Custom Action Typ "Property setzen" oder "Directory setzen". Zum Anzeigen des Property-Wertes schreibst du [DEINPROPERTY] in die Textbox. Das wird zur Laufzeit mit dem Wert des Properties DEINPROPERTY ersetzt.

Du musst jetzt INSTALLDIR statt TARGETDIR verwenden. Bei Windows Installer enden alle Verzeichnisse mit einem Backslash. Du kannst den Wert von INSTALLDIR aber einer Stringvariablen zuweisen und bei dieser den Backslash entfernen.

Allgemein sollte man die Verwendung von Skript im Windows Installer auf das unbedingt nötige Maß beschränken. Vieles geht auch ohne, allerdings musst du dich dazu vielleicht noch etwas tiefer in die Technologie einarbeiten und/oder eine Schulung besuchen.