小编use*_*234的帖子

如何在nsis中获取其他应用程序的退出代码

在我的.nsi文件中,我正在呼叫ExecWait '"$INSTDIR\application.exe" ' $0。在application.exe中,我将返回成功和失败的退出代码。如何在.nsi文件中捕获那些退出代码。

exe nsis exit-code

4
推荐指数
2
解决办法
7416
查看次数

卸载程序不删除注册表

Function Check32or64BitWindows
${If} ${RunningX64}
      strcpy $INSTDIR "$PROGRAMFILES64\${APP_FULL_PATH}" 
      SetRegView 64

${Else}
       SetRegView 32
       strcpy $INSTDIR "$PROGRAMFILES32\${APP_FULL_PATH}"
${EndIf}
FunctionEnd
Run Code Online (Sandbox Code Playgroud)

如果检测到旧版本,则执行

ExecWait '"$INSTDIR\uninst.exe" /S' $0
Run Code Online (Sandbox Code Playgroud)

我的卸载部分:

Section uninstall
!define APP_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_VENDOR} ${APP_NAME}"
!define APP_UNINST_ROOT_KEY "HKLM"
DeleteRegKey ${APP_UNINST_ROOT_KEY} "${APP_UNINST_KEY}"
SectionEnd
Run Code Online (Sandbox Code Playgroud)

Section -Post
WriteRegStr ${APP_UNINST_ROOT_KEY} "${APP_UNINST_KEY}" "DisplayName" "${APP_FULL_NAME}"
SectionEnd
Run Code Online (Sandbox Code Playgroud)

Post部分在Windows 64位注册表视图中创建注册表项,但卸载程序不会删除注册表项.

如果我删除了对64位操作系统的检查,那么在Wow6432Node中创建和删除注册表就可以正常工作.

registry nsis uninstall

3
推荐指数
2
解决办法
3797
查看次数

如何从ExecDos :: exec获取输出

当我netstat -a |find /C $portNumber在命令提示符下执行时,我得到给定端口号存在的总行数.

我想在任何变量中获得相同的计数,以便我可以检查NSIS中的端口是否已被占用或空闲.

我正在排除下面的命令,我尝试了很多方面,但是我无法在变量或堆栈中获得ExecDos :: exec的输出.

ExecDos::exec "netstat -a |find /C '$portNumber'| $output"
Run Code Online (Sandbox Code Playgroud)

installer netstat nsis

3
推荐指数
1
解决办法
3874
查看次数

标签 统计

nsis ×3

exe ×1

exit-code ×1

installer ×1

netstat ×1

registry ×1

uninstall ×1