广告快捷方式

时间:2013-02-21 17:30:34

标签: c# winapi installer windows-installer shortcut

有没有办法在C#或WinAPI函数中以编程方式创建广告快捷方式(例如,参见MS Office快捷方式)?

我只找到了从这些快捷方式获取/读取信息的方法,以及MSI创建这些快捷方式的知识,但没有办法创建它们(没有msi安装程序)

作为这种快捷类型的副作用,它们在属性窗口中不可编辑,我想创建这样的“不可编辑”快捷方式(就像MS Office一样 - 我对其他广告中的快捷方式功能并不感兴趣)

2 个答案:

答案 0 :(得分:2)

不是真的。广告快捷方式的目标是已安装产品组件的密钥文件。这样它可以在您单击时进行运行状况检查。

如果没有MSI,所有这一切都是不可能的。

ShellAPI可能会公开WindowsInstaller的CreateShortcut操作正在使用的函数,但我确信它会将ProductCode和ComponentID作为参数。

现在,如果使用MSI安装,我认为可以使用DTF创建已安装MSI的副本,更新ShortCut表并重新缓存产品,从而导致创建广告快捷方式。但我猜这不是你的想法。

答案 1 :(得分:1)

虽然您无法在不涉及Windows Installer的情况下创建MSI公布的快捷方式,但您可以创建任何Shell命名空间对象的快捷方式(这是Windows Installer所做的全部)。这将需要一个shell扩展DLL和自定义代码来实际创建快捷方式。

有关详细信息,请参阅MSDN Shell referencethis article

如果您只想提供延迟安装,可以将快捷方式指向存根可执行文件,以便在需要时触发任何检查和安装。