Die Windows Installer Technologie bietet bereits von Haus aus diverse Directory Properties um auf “Special Folders” Werte zugreifen zu können.
Leider gibt es jedoch immer wieder der Fall, dass man auf zusätzliche, nicht durch den Windows Installer bereits zu Verfügung gestellte Werte zugreifen muss.
Mit folgendem VBScript kann man sich diese Werte allerdings schaffen. In unserem folgenden Beispiel ermitteln wir den “Common Documents” Folder.
Folgendes Skript fügen wir als “CALL VBScript From Embedded Code” Aktion im Immediate Bereich ein:
Const CSIDL_COMMON_DOCUMENTS = &h2e
Set objShell = CreateObject(“Shell.Application”)
Session.Property(“ONTX_COMMON_DOCUMENTS”) = objShell.Namespace(CSIDL_COMMON_DOCUMENTS).Self.Path
Set objShell = nothing
Zu beachten ist, das wir diese Aktion vor “CostFinalize” durchführen müssen.
Um den Wert auch für Komponenten verwenden zu können, sollte man noch einen Eintrag in der Directory Tabelle erfassen:
Danach kann man das Property/Directory wie üblich verwenden.
Eine Liste aller Special Folders befindet sich im Anhang dieses Artikels.