0

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

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

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

4

2 回答 2

2

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

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

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

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

于 2013-02-22T00:25:31.330 回答
1

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

有关详细信息,请参阅 MSDN Shell 参考本文

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

于 2013-02-22T10:13:47.947 回答