问题标签 [advertised-shortcut]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1901 浏览

windows-installer - 如何以编程方式删除广告的快捷方式?

所以我搞砸了一个 msi 安装程序并在仅测试安装后部署它,而不是卸载(我知道,安装后添加了一个 exe 的运行,但忘记指定它应该只在安装而不是卸载时发生)。

我找到了Windows Installer Cleanup实用程序,以及我将用于自动化该过程的相关 msizap。现在的问题是,当之后在顶部安装较新版本时,广告中的快捷方式仍会尝试进行修复(或尝试加载旧版本实际上正在执行的任何操作)并失败。直接从文件运行程序工作正常,但我需要以自动方式删除广告的快捷方式。它现在不需要非常强大,相当小的私人测试版安装基础,因此可以假设快捷方式位于桌面和开始菜单的最初安装位置。

对于广告的快捷方式,我是否需要考虑任何特殊问题,或者我可以将其视为任何其他文件并删除它?

0 投票
3 回答
29688 浏览

wix - Wix 为所有用户/每台机器创建非广告快捷方式

在 WIX 中,如何在 allusers 配置文件中创建非广告快捷方式?到目前为止,我只能通过宣传的捷径来实现这一点。我更喜欢非广告快捷方式,因为您可以转到快捷方式的属性并使用“查找目标”。

在教程中,我看到使用注册表值作为快捷方式的键路径。问题是他们使用 HKCU 作为根。当使用 HKCU 并且另一个用户卸载该程序(因为它是为所有用户安装的)时,注册表项被留下。当我使用 HKMU 作为根时,我得到一个 ICE57 错误,但是当另一个用户卸载程序时,密钥被删除。尽管 HKMU 似乎表现正确(每个用户与所有用户),但我似乎被推向使用 HKCU。

当我尝试创建非广告快捷方式时,我收到各种 ICE 错误,例如 ICE38、ICE43 或 ICE 57。我看过的大多数文章都建议“忽略 ice 错误”。必须有一种方法可以创建非广告快捷方式,而不会产生 ICE 错误。

请发布示例代码以获取工作示例。

0 投票
4 回答
16795 浏览

windows-installer - DISABLEADVTSHORTCUTS=1 禁用所有快捷方式

我们有一个要在启动时运行的应用程序,它允许在安装后更改许多已安装的文件。DISABLEADVTSHORTCUTS=1我们正在尝试通过在 Orca 中设置属性来关闭自愈模式。但是,设置此属性时不会创建任何快捷方式。我看到的所有信息都表明我们应该能够使用DISABLEADVTSHORTCUTS=1set 创建“非广告”快捷方式。有任何想法吗?

DISABLEADVTSHORTCUTS如果保持不变,我已经验证了正确创建快捷方式。

0 投票
1 回答
865 浏览

wix - 在 Wix 中,广告快捷方式可以使用系统文件关联中的图标吗?

一个问题是关于 Wix 和设置广告快捷方式的图标:

如果您的安装程序包含手册或 .pdf 格式的文档,并且您想要创建 PDF 文件的快捷方式。是否可以根据系统文件关联使用快捷方式图标?

例如,用户有 Adob​​e 阅读器,快捷方式获取 adobe pdf 图标。用户有 Foxit/其他阅读器,快捷方式获取该程序图标。等等

0 投票
3 回答
3827 浏览

wix - 如果我删除文件,为什么 MSI 安装程序会重新配置?

我在 Visual Studio 2008 中创建了一个 MSI 安装程序包。问题是安装后,如果我删除任何已安装的文件。这不是我的安装程序包的预期行为。我的文件安装属性是:

PackageAs vsdpaDefault Permanent False ReadOnly False Register vsdrfDoNotRegister System False Transitive False Vital False

如果这是微不足道的,请原谅我。我不敢相信我无法让谷歌放弃答案。:)

0 投票
1 回答
789 浏览

visual-studio-2005 - 删除应用程序数据文件时,如何防止安装程序运行?

我有一个使用 Visual Studio 2005 用 VB.Net 编写的应用程序。该应用程序允许用户创建和保存项目文件。当我分发应用程序时,我会包含一些演示项目文件,这些文件会安装在公共应用程序数据文件夹中。

XP - C:\Documents and Settings\所有用户\应用程序数据

Vista & 7 - C:\程序数据

我发现了一个意外行为——如果公共应用程序数据文件夹中的任何文件被删除,并且应用程序从开始菜单运行,那么安装过程将启动并尝试恢复丢失的文件。如果 MSI 文件不再存在于其原始位置或已更改,则应用程序将无法运行。我认为这是一个“功能”,但这是我不想要的。谁能告诉我发生了什么以及如何避免它?

更多细节:

  • 我使用 Visual Studio 部署项目创建了安装程序包。

  • 如果我直接启动 EXE,则不会发生此行为。因此,我希望该行为与开始菜单快捷方式有关。我注意到快捷方式不是普通的快捷方式——它没有“目标位置”。

感谢所有建议。

-TC

0 投票
0 回答
716 浏览

vbscript - 从 MSI 外部获取广告快捷方式的完整路径

我致力于从 MSI 外部获取组件密钥文件的完整目录路径,以及使用 VBScript 的广告快捷方式。

我读到我们可以使用MsiGetComponentPath&MsiGetShortcutTarget函数。下面是我放在一起的代码,但我没有得到我想要的输出 - 这是基于快捷方式表中组件列的密钥文件的路径。任何帮助表示赞赏。

0 投票
1 回答
1520 浏览

visual-studio-2012 - 无法在 InstallShield 2012 Limited Edition 中创建非广告快捷方式

我为 Visual Studio 2012 解决方案创建了 InstallShield 2012 Limited Edition 安装程序项目。我已配置为创建“发送至”快捷方式。但是,它会创建一个广告快捷方式,因此 Windows 实际上不会在“发送到”菜单中显示它。

当我在安装程序项目中创建快捷方式时,我明确选择了“快捷方式”选项而不是“广告快捷方式”选项,但无论如何它都会创建一个广告快捷方式。

我怎样才能让安装程序生成一个非广告的?

0 投票
1 回答
788 浏览

windows - 如何从 Microsoft Office 截图中获取 targetPath、workingDir 信息(例如 Word 2013.lnk)

尝试使用 IShellLink COM 接口获取 .LNK 文件的信息。它适用于许多应用程序快捷方式但对于 Microsoft Office 应用程序快捷方式它不提供正确的信息例如:

在阅读 ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Office 2013\Word 2013.lnk 时

IShellLink::GetPath 返回“C:\Windows\Installer{90150000-0011-0000-0000-0000000FF1CE}\wordicon.exe”

不是 C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.exe

有什么方法可以从此类 .lnk 文件中获取目标信息。双击快捷方式时,哪个窗口用于启动应用程序。

@丹尼斯

这是我尝试过的 C++ 代码

0 投票
2 回答
48 浏览

wix - 试图在程序菜单文件夹中打开快捷方式引发异常

我尝试了上述解决方案,但不幸的是行为没有区别。所以请建议如何进一步进行。

问候, Ranjan VijayKumar。