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

Registry Strings lesen und verwenden


3 replies to this topic

hmd

hmd
  • Full Members
  • 2 posts

Posted 05 February 2009 - 16:17

- Hab Installshield Express 2008

Mein IS-Project hab ich mal soweit erstellt, dass ich meine Einträge mit Hilfe der eckigen Klammern (z.B. [INSTALLDIR] oder [ProductVersion] ...) in meinen Registryabschnitt schreiben kann.

Das Problem ist, ich bin auf Daten eines anderen Programms angewiesen (meinem Fall AutoCAD ... könnte auch Word sein). Aus deren Registryeinträgen brauch ich den Installationspfad, um eine Verknüpfung zum Programmstart mit einem veränderten Parameter zu erstellen.

Der Schlüssel dazu wäre (auszulesen ist ein String) ...
HKEY_CURRENT_USER\SOFTWARE\Autodesk\AutoCAD\R17.2\ACAD-7001:409\AcadLocation

Den String würde ich gerne im Installationsdesigner unter 3.Verknüpfung/Ordner auf Desktop in einer neuen Verknüpfung einsetzen .... [AcadLocation]ACAD.EXE ... was z.B. im Endresultat dann "C:\Programme\AutoCAD 2009\ACAD.EXE" ergibt.
Schön wäre es, wenn es auch so simpel und übersichtlich wie im Fall von [INSTALLDIR] gehen würde.

Auch nicht schlecht wäre eine Funktion wo man zwei Strings zusammen basteln kann. Ein String stammt von meiner Installation, einer ist aus der Registry von AutoCAD. Wahrscheinlich muss ich das mit einer DLL mit dem Windows Installer machen. Wäre aber um ein Beispiel sehr dankbar, weil ich nicht viel Zeit zum Einarbeiten hab.

Besten Dank schon mal für jede Info!





Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 February 2009 - 16:27

Du solltest den Property-Namen in Großbuchstaben wählen, dann sollte das funktionieren, z.B.
[ACADLOCATION]ACAD.EXE

Zusammenbauen geht ganz einfach, denn es handelt sich ja quasi um eine Textersetzung. Wenn also z.B.
PROP1 = "Hallo" und PROP2 = "Welt"
dann wird
[PROP1][PROP 2]
zu
HalloWelt
und
[PROP1] schöne [PROP 2]!
zu
Hallo schöne Welt!



hmd

hmd
  • Full Members
  • 2 posts

Posted 10 February 2009 - 17:53

QUOTE (Stefan Krueger @ 2009-02-09 16:27)
Du solltest den Property-Namen in Großbuchstaben wählen, dann sollte das funktionieren, z.B.
[ACADLOCATION]ACAD.EXE

Zusammenbauen geht ganz einfach, denn es handelt sich ja quasi um eine Textersetzung. Wenn also z.B.
PROP1 = "Hallo" und PROP2 = "Welt"
dann wird
[PROP1][PROP 2]
zu
HalloWelt
und
[PROP1] schöne [PROP 2]!
zu
Hallo schöne Welt!

Vielen Dank für die Antwort! smile.gif

Die Frage ist aber viel mehr wie bekomm ich den String aus dem bestehenden Registry-Wert HKEY_CURRENT_USER\SOFTWARE\Autodesk\AutoCAD\R17.2\ACAD-7001:409\AcadLocation in den Property-Namen [ACADLOCATION]. ... respektive wie kann ich im Express einen eigenen Property-Namen erzeugen.

Ich hab IS 2008 Express, ich weiss nicht mal wo ich das hinschreiben soll. Mit dem normalen IS geht das wahrscheinlich problemlos. Ich möchte doch nur einen bestehenden String aus der Registry lesen und den dann in einer Variable (Property-Namen) speichern.

Bei "Benutzerdefinierte Aktionen" könnte ich entweder "Neue DLL", Neue EXE, Neues VBScript wählen ... dort kann ich jeweils vor einem Dialogfeld was Benutzerspezifisches eintragen.



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 11 February 2009 - 13:40

In Professional oder Premier würde man das unter "Systemsuche" machen. Gibt's das in Express auch? Dort kann man nach einem Registry-Eintrag suchen und diesen in einem Property speichern. Das Property wird dann zur Laufzeit automatisch angelegt.