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 Eintrag auslesen


3 replies to this topic

Majue

Majue
  • Full Members
  • 185 posts

Posted 05 May 2011 - 13:49

Hallo,

sad.gif eine an sich relativ einfache Prüfung will einfach nicht richtig funktionieren:

Aus der Registry soll mit der Systemsuche folgender Eintrag ausgelesen und in der Property DOTNET2 gespeichert werden:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727]
"Install"=dword:00000001


Diese Eigenschaft soll dann dazu verwendet werden, um
  • mit der Bedingung Show einen Text im Dialogfeld InstallWelcome einzublenden
  • ein bestimmtes Feature von der Installation auszuschließen
Leider funktioniert das bei mir nicht richtig. Vielleicht mache ich ja einen Fehler bei den Bedingungen oder der Systemsuche. Wäre also nett, wenn mir jemand die korrekte Syntax für die einzelnen Elemente nennen könnte, damit mein Setup wie gewünscht funktioniert.

Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 05 May 2011 - 14:47

Bei der Systemsuche wird ggf. im Ergebnis noch eine Kennung für den Datentyp hinzugefügt, zum Beispiel # für DWORD (siehe Doku zu RegLocator). In deinem Beispiel erhält das Proeprty also den Wert:
#1
(jedenfalls denke ich dass führende Nullen nicht verwendet werden).


Majue

Majue
  • Full Members
  • 185 posts

Posted 06 May 2011 - 08:01

Leider scheint meine Systemsuche den Registry-Key komplett zu ignorieren.

Meine Einstellungen sehen wie folgt aus:

Tabelle: AppSearch
Property: DOTNET2
Signatur: SigDOTNET2

Tabelle: RegLocator
Signatur: SigDOTNET2
Root: 2
Key: Software\Microsoft\NET Framework Setup\NDP\v2.0.50727
Name: Install
Type: 2

Dialogfeld: InstallWelcome
Textfeld: TextDotNet2
Bedingung: Hide / DOTNET2="#1"

Dialogfeld: SetupType
Textfeld: Text1
Text: DOTNET2: [DOTNET2]
(hier soll während der Testphase zur Kontrolle der ausgelesene Wert angezeigt werden, bleibt aber leer)

Feature: Demo_Daten
Bedingung: 1 / DOTNET2="#1"


Warum funktioniert das nicht? Andere Registry-Einträge werden richtig ausgelesen und berücksichtigt, das habe ich durch einen Testeintrag überprüft.

Edited by Majue, 06 May 2011 - 10:13.

Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)


Majue

Majue
  • Full Members
  • 185 posts

Posted 10 May 2011 - 07:38

Jetzt habe ich den Fehler gefunden. Es lag daran, dass der Registrykey immer im 64-Bit-Bereich angelegt wird. Das Setup sucht den Eintrag aber, je nachdem, ob es ein 32- oder 64-Bit-System ist, an unterschiedlichen Stellen. Nun habe ich das Häkchen bei "64-Bit-Bereich der Registrierung durchsuchen" gesetzt und es funktioniert.

Gruß
Jürgen Markert

(Anwender von InstallShield 2016 - Professional Edition)