我已经使用 nsis 脚本来创建安装程序。当我以相同的名称第二次运行我的安装程序时,应该检查 REPAIR 和 REMOVE 并执行相应的操作。我发现我的应用程序已经安装或未使用以下代码,
Function checkinstall
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My app" "UninstallString"
IfFileExists $R0 +1 NotInstalled
call nsDialogpage
NotInstalled:
FunctionEnd
Function nsDialogpage
nsDialogs::Create 1018
Pop $Dialog
${If} $Dialog == error
Abort
${EndIf}
${NSD_CreateRadioButton} 0 5u 100% 10u "Repair"
Pop $hwnd
${NSD_AddStyle} $hwnd ${WS_GROUP}
${NSD_OnClick} $hwnd ???
${NSD_CreateRadioButton} 0 25u 100% 56u "Remove"
Pop $hwnd
${NSD_OnClick} $hwnd ???
nsDialogs::Show
如果用户选择修复按钮,它应该覆盖现有的安装路径,否则卸载现有的安装并继续使用新的。我需要做什么来替换上述代码的(???)
page custom checkinstall
!insertmacro MUI_PAGE_DIRECTORY
我的下一页是目录选择。所以我需要调用此页面吗?如何做到这一点?
1.如果用户选择删除按钮,我如何调用uninstaller函数?
Function un.Init, section /o -un.Main UNSEC000,section -un.post UNSE001
这些是联合国安装程序的功能。我如何调用这些功能?我尝试过调用方法,但它不起作用。