Im Packaging Selbststudium befinden sich mittlerweile Beiträge zu fast allen häufig genutzten Sektionen. Jedoch habe ich bis dato noch keinen Beitrag über die Erstellung von „dynamischen“ Verknüpfungen für den Desktop oder das Startmenü erstellt. Damit meine ich Verknüpfungen, die Variablen des Paketes oder der Umgebung enthalten, anders als das in *.lnk Dateien der Fall ist. Dafür ist in Empirum die Sektion [Shell:Product] zuständig. Die Sektion muss nicht [Shell:Product] heißen! So jedoch wird sie automatisch am Ende aufgerufen, wenn die Option und Sektion [Product] vorhanden und unter [Application] ShellLinks=1 gesetzt ist. Benennt man die Sektion anders als die Option z.B. [Shell:MyProgram], dann muss man die Sektion explizit aufrufen mit #Shell:MyProgram.
Wie ist die Syntax zur Erstellung einer Verknüpfung?
Die Syntax bzw. Abfolge der Angaben ist wie folgt.
<Verknüpfung>, <Kommando>, <Argumente>, <Arbeitsverzeichnis>, <Beschreibung>, <Symboldatei>, <Symbolindex>, <Fensterzustand>, <Tastenkombination>
Es müssen nicht alle Angaben gesetzt werden, wie die nachfolgenden Beispiele zeigen.
Beispiele:
;---Erstellung einer einfachen Verknüpfung auf dem Desktop abhängig von CommonShellLinks %Desktop%\Internet Explorer, %ProgramFiles%\Internet Explorer\iexplore.exe ;---Erstellung einer einfachen Verknüpfung auf dem Desktop aller Benutzer unabhängig von CommonShellLinks %CommonDesktop%\Internet Explorer, %ProgramFiles%\Internet Explorer\iexplore.exe ;---Erstellung einer Verknüpfung auf dem Desktop aller Benutzer %CommonDesktop%\ServicePortal, %ProgramFiles%\Internet Explorer\iexplore.exe, https://serviceportal.company.de/wm, Company ServicePortal ;---Erstellung einer Verknüpfung ServicePortal im Startmenü abhängig von CommonShellLinks ServicePortal, %ProgramFiles%\Internet Explorer\iexplore.exe, https://serviceportal.company.de/wm, Company ServicePortal ;---Erstellung einer Verknüpfung ServicePortal im Startmenü Ordner "MyComany" unabhängig von CommonShellLinks %CommonPrograms%\MyCompany\ServicePortal, %ProgramFiles%\Internet Explorer\iexplore.exe, https://serviceportal.company.de/wm, Company ServicePortal
Besonderheiten
Die mittels Shell:Product erstellen Verknüpfungen werden beim Deinstallieren auch wieder entfernt. Möchte man beim Installieren Verknüpfungen entfernen, so geht das nur über den Del bzw. Deltree Befehl.
Beispiele:
;---löschen des Startmenü Ordners MyComany Deltree "%CommonPrograms%\MyCompany" ;---löschen einer Verknüpfung vom Desktop aller Benutzer Del "%CommonDesktop%\ServicePortal.lnk" ;---löschen einer Verknüpfung vom Desktop des jeweiligen angemeldeten Benutzers - Achtung: Das Paket muss mit /AW ausgeführt werden. Del "%UserDesktop%\ServicePortal.lnk"
Abhängigkeiten
Die Shell:Product Ausführung ist von mindestens zwei Eigenschaften in der Application Sektion abhängig
CommonShellLinks=[1|0]
Wenn CommonShellLinks den Wert 1 hat, so ist die Variable %Desktop% gleichzusetzen mit %CommonDesktop%, genauso wie %Programs% mit %CommonPrograms%.
Ist der Wert 0, so ist %Desktop% gleichzusetzen mit %UserDesktop% und %Programs% mit %UserPrograms%.
ShellLinks=[0|1]
Ist der Wert 1, werden die Verknüpfungen erst am Ende der Installation, für jede Option der Abschnitt [Shell:<Option>], automatsich erzeugt ohne explizit aufgerufen zu werden. Ist der Wert 0, können Verknüpfungen auch durch den direkten Aufruf von #Shell:<Option> erstellt werden.
Gute Erklärung, danke dafür.