我需要更改ConfirmUninstall
,UninstalledMost
(以防万一)和UninstalledAll
具体来自脚本以设置条件。像这样:
if FileExists(ExpandConstant('{app}\Slash.exe')) then
SetupMessage(msgConfirmUninstall) := FmtMessage(SetupMessage(msgConfirmUninstall), ['Dagon Slasher'])
else if FileExists(ExpandConstant('{app}\Frank.exe')) then
SetupMessage(msgConfirmUninstall) := FmtMessage(SetupMessage(msgConfirmUninstall), ['Dagon Frankenstein'])
else
SetupMessage(msgConfirmUninstall) := FmtMessage(SetupMessage(msgConfirmUninstall), ['Dagon Video Tools']);
但这不起作用。这些消息在MsgBox
es中使用,所以我想不出任何其他方式。 Running in silent mode并不适合我,因为如果已安装程序(或其中一个),安装程序将运行卸载,因此我不希望用户通过运行安装程序意外卸载程序。 / p>
答案 0 :(得分:1)
你无法改变这些。也许除了实现一些监视新消息框的DLL并在它们出现时更新它们。
关于the silent uninstall solution:我不明白你的问题&#34;如果程序(或其中一个)已安装&#34; ,安装程序将运行卸载。< / p>
我假设您只在用户确认要安装新版本后才运行卸载程序,因此您实际上想要静默运行卸载程序,对吧?
无论如何,即使&#34;添加/删除程序&#34; 中的条目引用,也无法阻止您从安装程序非静默运行卸载程序到&#34;沉默&#34;安装。
您可以使用涵盖所有设置类型的通用消息:
[Messages]
ConfirmUninstall=Are you sure you want to completely remove this game?
由于卸载消息取决于已安装应用程序的类型,因此您可以将安装程序修改为:
/APPTYPE=slasher
)重新启动安装程序并退出。/APPTYPE
(重新)运行安装程序后,您从一开始就知道要安装的组件/类型,因此可以相应地设置AppName
(使用{{3 }})。这实际上并不难实现。唯一的缺点是设置窗口被重新创建&#34;在用户选择&#34;类型&#34;。
之后我已经在a scripted constant的回答中草拟了这个解决方案。