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 auslesen


6 replies to this topic

Worti

Worti
  • Full Members
  • 2 posts

Posted 27 November 2007 - 11:21

Hallo Forum

ich stehe vor folgendem Problem.

Und zwar, habe ich alte von Hand erstellte Installationen einer Software.
In dieser wurde jeweils ein ODBC Treiber, plus deren DSN gesetzt.

Mit einem AddOn Toll sollte ich nun einige OCX, ODBC Treiber & DSN installieren.
Falls es aber schon ODBC Registry Einträge gibt, sollte das Installations Tool diese auslesen und wiederverwenden, falls es diese Einträge nicht gibt einen Defauult wert setzten.

Ist das überhaubt realisierbar?

Ich hoffe es versteht mich der eine oder andere... ich gebs zu bin manchmal ein bisschen kompliziert ;-)

Danke und Gruss Worti

Worti

Worti
  • Full Members
  • 2 posts

Posted 29 November 2007 - 09:00

Ok, anders gefragt.

Ist es möglich eine "IF Exist, dont install" zu implementieren?
Wenn ja, wie würde sowas aussehen?

Danke und Gruss
Worti

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 November 2007 - 15:41

Wie wäre es stattdessen mit:
Lies vorhandenen Eintrag und speichere in Property
Falls Property leer setze es auf Default-Wert
Schreib Property-Wert in die Registry

Das kannst du über die Systemsuche machen.

andste72

andste72
  • Full Members
  • 5 posts

Posted 17 January 2008 - 08:44

Hallo,
ich muss erst mal gestehen, dass ich in dem Bereich absoluter Neuling bin.
Ich habe jetzt ein System Search eingerichtet.
Inhalt:
Search For: DevicePath
Search In: HKLM\Software\Microsoft\Windows\CurrentVersion
Store In : ARPPRODUCTICON

Frage 1: Kann ich einen neuen Store In Wert angeben, oder ist das egal?
Frage 2: In diesem Wert sollte min. %systemdrive%\inf stehen, wie kann ich jetzt meinen Wert hinzufügen? Ich möchte dass er den Wert DevicePath ausliest und mir den Eintrag %Systemroot%\Treiber anhängt.

Ich arbeite mit Installshield 2008 aus dem AdminStudio 8.6.

Danke
Andreas

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 17 January 2008 - 19:46

zu 1: Ja, unbedingt! ARPPRODUCTICON hat eine festgelegt Funktion. Für deine eigenen Zwecke solltest du auch eigene Proeprties (Variablen) definieren.

zu 2: Ich verstehe die Frage nicht ganz, aber über eine Custom Action Typ 51 (Set a Property) kann man auch Strings verketten. Das Vorgehen wäre dann z.B.:
Systemsuche speichert in Property DEVICEPATHFROMREGISTRY
Custom Action Typ 51:
- zu setzendes Property: EINNAMEDEINERWAHL
- Wert: [DEVICEPATHFROMREGISTRY]%Systemroot%\Treiber


andste72

andste72
  • Full Members
  • 5 posts

Posted 18 January 2008 - 11:22

Danke schonmal für die Hilfe. Bin jetzt bei folgendem Stand:

Über den Property Manager eine neue Variable gesetzt: DEVICEPATHFROMREGISTRIY
Value ist jedoch leer, ist das richtig?

Über SystemSeach "Store In" den Wert DEVICEPATHFROMREGISTRY gesetzt.

Eine Custom Action angelegt:
Property Name: DEVICEPATHFROMREGISTRY
Property Value: [DEVICEPATHFROMREGISTRY]%Systemroot%\Treiber
MSI Type Number: 51

Wenn ich das Paket jetzt installiere, wird leider nur der Wert %systemroot%\Treiber in die Registry geschrieben. Ich habe da bestimmt nur etwas vergessen, oder falsch eingetragen, oder?
Ein weiteres Problem: Bei einer Deinstallation wird dann der komplette DevicePath aus der Registry gelöscht, kann dieses vermeiden?

Danke
Andreas

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 January 2008 - 18:33

QUOTE
Über den Property Manager eine neue Variable gesetzt: DEVICEPATHFROMREGISTRIY

Das ist unnötig. Wenn das Property nicht definiert ist setzt Wndows Installer es automatisch. Lösch den Eintrag besser.

Ich schätze, das Auslesen funktioniert nicht. Was sagt denn das Log?

Ich hätte zwei verschiedene Property-Namen verwendet, ich weiß aber nicht ob das ein Problem ist.