gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 03:45:41 29 4
gpt4 key购买 nike

在 WIX 中,如何在所有用户配置文件中创建非广告快捷方式?到目前为止,我只能通过广告中的快捷方式来完成此任务。我更喜欢非广告的快捷方式,因为您可以转到快捷方式的属性并使用“查找目标”。

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

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

请发布工作示例的示例代码。

最佳答案

抱歉,如果回答我自己的问题是不礼貌的。

最近我偶然发现了DISABLEADVTSHORTCUTS property的信息。我创建了一个带有广告快捷方式的安装,并将 DISABLEADVTSHORTCUTS 属性设置为 1,这会生成非广告快捷方式。这会绕过 ICE43 errors因为广告的快捷方式可以使用文件作为键路径。由于已设置 DISABLEADVTSHORTCUTS,Windows Installer 会将这些公布的快捷方式替换为常规快捷方式。

我设置了Package Element's InstallScope 属性为“perMachine”。这会将 ALLUSERS 属性设置为 1。 ProgramMenuFolder 的值和 DesktopFolder然后将解析为“所有用户”配置文件。

对于在ProgramMenuFolder 下创建的文件夹,有一个RemoveFolder 和RegistryValue 元素。我见过的示例( ex1ex2 )使用 HKCU 作为RegistryValue 的根。我将此根更改为 HKMU根据 ALLUSERS 的值解析为 HKCU 或 HKLM。

简而言之,将 DISABLEADVTSHORTCUTS 设置为 1 时,您的广告快捷方式不会产生 ICE 错误,但在安装时会转换为非广告快捷方式。具有根 HKMU 的 RegistryValue 对于 KeyPath 来说是合适的,只要它不是非广告快捷方式的键路径即可。

<?xml version="1.0" encoding="utf-8"?>
<!-- This example is based on SampleFirst by Gábor DEÁK JAHN, Tramontána:
http://www.tramontana.co.hu/wix/lesson1.php#1.3
Original SampleFirst:
http://www.tramontana.co.hu/wix/download.php?file=samples/samplefirst.zip&type=application/zip -->
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Name="Foobar 1.0" Id="YOURGUID-21F1-4026-ABD2-7CC7F8CE4D18" UpgradeCode="YOURGUID-AFA4-46C6-94AA-EEE3D104F903" Language="1033" Codepage="1252" Version="1.0.0" Manufacturer="Acme Ltd.">
<Package Id="*" Keywords="Installer" Description="Acme's Foobar 1.0 Installer" Comments="Foobar is a registered trademark of Acme Ltd." Manufacturer="Acme Ltd." InstallerVersion="100" Languages="1033" Compressed="yes" SummaryCodepage="1252" InstallScope="perMachine" />
<Media Id="1" Cabinet="Sample.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1" />
<Property Id="DiskPrompt" Value="Acme's Foobar 1.0 Installation [1]" />
<Property Id="DISABLEADVTSHORTCUTS" Value="1" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="Acme" Name="Acme">
<Directory Id="INSTALLDIR" Name="Foobar 1.0">
<Component Id="MainExecutable" Guid="YOURGUID-3E4F-47A2-86F1-F3162E9C4798">
<File Id="FoobarEXE" Name="FoobarAppl10.exe" DiskId="1" Source="FoobarAppl10.exe" KeyPath="yes">
<Shortcut Id="startmenuFoobar10" Directory="ProgramMenuDir" Name="Foobar 1.0" WorkingDirectory="INSTALLDIR" Icon="Foobar10.exe" IconIndex="0" Advertise="yes" />
<Shortcut Id="desktopFoobar10" Directory="DesktopFolder" Name="Foobar 1.0" WorkingDirectory="INSTALLDIR" Icon="Foobar10.exe" IconIndex="0" Advertise="yes" />
</File>
</Component>
<Component Id="HelperLibrary" Guid="YOURGUID-C7DA-4C02-A2F0-A6E089FC0CF3">
<File Id="HelperDLL" Name="Helper.dll" DiskId="1" Source="Helper.dll" KeyPath="yes" />
</Component>
<Component Id="Manual" Guid="YOURGUID-FF92-4BF4-A322-819A3B2265A0">
<File Id="Manual" Name="Manual.pdf" DiskId="1" Source="Manual.pdf" KeyPath="yes">
<Shortcut Id="startmenuManual" Directory="ProgramMenuDir" Name="Instruction Manual" Advertise="yes" />
</File>
</Component>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="Foobar 1.0">
<Component Id="ProgramMenuDir" Guid="YOURGUID-D1C2-4D76-BA46-C6FA79862E77">
<RemoveFolder Id="ProgramMenuDir" On="uninstall" />
<RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes" />
</Component>
</Directory>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop" />
</Directory>
<Feature Id="Complete" Level="1">
<ComponentRef Id="MainExecutable" />
<ComponentRef Id="HelperLibrary" />
<ComponentRef Id="Manual" />
<ComponentRef Id="ProgramMenuDir" />
</Feature>
<Icon Id="Foobar10.exe" SourceFile="FoobarAppl10.exe" />
</Product>
</Wix>

关于Wix 为所有用户/每台机器创建非广告快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2058230/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com