windows - 如何在卸载部分调用 nsi 函数?

标签 windows nsis

我有一个 nsi 脚本,它有一个函数可以返回我试图在卸载部分调用的输出。不幸的是,当我运行它时,由于调用此函数的方式,我显然会出错。我的理解是在卸载部分有一种调用函数的特殊方法,但我不确定如何调用函数,我想知道是否有人可以帮助我?我的代码如下所示:

Function TestFunction
   Push $R0
   Rush $R1
   ;do stuff
   Pop $R!
   Exch $R0
FunctionEnd

!macro TestFunction OUTPUT_VALUE
   Call TestFunction
   Pop `${OUTPUT_VALUE}`
!macroend

!define TestFunction'!insertmacro "TestFunction"' 

; Uninstaller

Section "Uninstall"
  ${TestFunction} $R0
  StrCmp $R0 "Test" istest isnottest 

最佳答案

NSIS 有命名条件——从卸载程序调用的函数必须有“un”。名称前缀。当您有一些可以从安装程序和卸载程序调用的功能时,这很无聊。 为了避免复制过去,有经验的人通常使用 macroses。 像这样:

!macro TestFunction UN
Function ${UN}TestFunction
   ;do stuff
FunctionEnd
!macroend
!insertmacro TestFunction "" 
!insertmacro TestFunction "un."

使用:

Section "Install"
  Call TestFunction
EndSection

Section "Uninstall"
  Call un.TestFuction
SecionEnd

关于windows - 如何在卸载部分调用 nsi 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32597697/

相关文章:

php - 如何在 Windows 托管服务器上运行 .php 文件

windows - Windows 命令行 merge 工具

c# - 模拟网络驱动器(使用 Loopback Adapter?)

windows - 是否有针对 Windows 7 程序的推荐图标集?

c++ - 带有错误字符串的 NSIS 插件

windows - gcloud auth application-default print-access-token 给出文件未找到错误

nsis - 使用 MUI 在 NSIS 中添加页面以请求字符串的最简单方法是什么?

nsis - 您将如何在 NSIS 中转义美元符号?

nsis:如何创建开始菜单快捷方式来打开文件夹?

nsis - 使用 NSIS 将当前日期和时间写为文件名