Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
As you may already know, Windows 7 supports setting properties on shortcuts and MSI 5.0 provides MsiShortcutProperty table to enable setting shortcut properties from installation package.
Let's start with updated nonadvertised shortcut sample from Part 10:
<?xml version="1.0" encoding="UTF-8"?>
<?define APPPATH = "D:\Learning\Wix\ShortcutProperty\ConsoleApp\bin\Debug"?>
<Wix xmlns="https://schemas.microsoft.com/wix/2006/wi">
<Product Id="59226dd7-6c8a-41f4-900d-697967752465"
Name="ShortcutProperty"
Language="1033"
Version="1.0.0.0"
Manufacturer="ShortcutProperty"
UpgradeCode="256a8e92-2d80-4445-944c-6f3116b2f100">
<Package InstallerVersion="200" Compressed="yes"
InstallScope="perMachine" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="INSTALLLOCATION" Name="ShortcutProperty">
<Component Id="Component1"
Guid="{213F41E8-8AD5-4BEA-AFC5-652A02F6596F}"
DiskId="1">
<File Id="ConsoleApp.exe"
Name="ConsoleApp.exe"
Vital="yes"
KeyPath="yes"
Source="$(var.APPPATH)\ConsoleApp.exe" />
</Component>
<Component Id="Component2"
Guid="{7D96A205-F60A-4bd2-AB66-9ADDFD49ED56}"
DiskId="1">
<RegistryValue Root="HKCU"
Key="Software\ShortcutProperty\ConsoleApp"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
<Shortcut Id="startmenuNonadv"
Directory="ProgramMenuDir"
Advertise="no"
Name="ConsoleApp"
WorkingDirectory="INSTALLDIR"
Icon="Icon.exe"
Target="[!ConsoleApp.exe]">
<Icon Id="Icon.exe" SourceFile="$(var.APPPATH)\ConsoleApp.exe" />
</Shortcut>
<RemoveFolder Id="DeleteShortcutFolder"
Directory="ProgramMenuDir"
On="uninstall" />
</Component>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="ConsoleApp ShortcutProperty sample" />
</Directory>
</Directory>
<Feature Id="ProductFeature" Title="ShortcutProperty" Level="1">
<ComponentRef Id="Component1" />
<ComponentRef Id="Component2" />
</Feature>
</Product>
</Wix>
After installing this application on Windows 7 you will notice that "ConsoleApp ShortcutProperty sample" menu in "All Programs" is highlighted (indicating that new program is installed) and if you will right-click on "ConsoleApp" shortcut, you'll see "Pin to Taskbar" and "Pin to Start Menu" in the popup menu.
For my application I don't want users to be notified that new application has been installed and I don't want users to be able to pin my application to Taskbar. Here is what we need to add to our shortcut component (inside <Sortcut> element):
<ShortcutProperty Id="ShortcutProperty.ConsoleApp"
Key="System.AppUserModel.PreventPinning"
Value="1" />
<ShortcutProperty Id="ShortcutProperty.ConsoleApp"
Key="System.AppUserModel.ExcludeFromShowInNewInstall"
Value="1" />
Sample project is attached.
Comments
- Anonymous
September 10, 2010
I have created advertised shortcut with WIX but I see only "Pin to Start menu" menu item. How can I enable Taskbar pinning support? Thanks.