有没有办法在C#或WinAPI函数中以编程方式创建广告快捷方式(例如,参见MS Office快捷方式)?
我只找到了从这些快捷方式获取/读取信息的方法,以及MSI创建这些快捷方式的知识,但没有办法创建它们(没有msi安装程序)
作为这种快捷类型的副作用,它们在属性窗口中不可编辑,我想创建这样的“不可编辑”快捷方式(就像MS Office一样 - 我对其他广告中的快捷方式功能并不感兴趣)
答案 0 :(得分:2)
不是真的。广告快捷方式的目标是已安装产品组件的密钥文件。这样它可以在您单击时进行运行状况检查。
如果没有MSI,所有这一切都是不可能的。
ShellAPI可能会公开WindowsInstaller的CreateShortcut操作正在使用的函数,但我确信它会将ProductCode和ComponentID作为参数。
现在,如果使用MSI安装,我认为可以使用DTF创建已安装MSI的副本,更新ShortCut表并重新缓存产品,从而导致创建广告快捷方式。但我猜这不是你的想法。
答案 1 :(得分:1)
虽然您无法在不涉及Windows Installer的情况下创建MSI公布的快捷方式,但您可以创建任何Shell命名空间对象的快捷方式(这是Windows Installer所做的全部)。这将需要一个shell扩展DLL和自定义代码来实际创建快捷方式。
有关详细信息,请参阅MSDN Shell reference和this article。
如果您只想提供延迟安装,可以将快捷方式指向存根可执行文件,以便在需要时触发任何检查和安装。