卸载程序不删除注册表
发布时间:2021-02-03 17:22 所属栏目:52 来源:网络整理
导读:Function Check32or64BitWindows${If} ${RunningX64} strcpy $INSTDIR "$PROGRAMFILES64\${APP_FULL_PATH}" SetRegView 64${Else} SetRegView 32 strcpy $INSTDIR "$PROGRAMFILES32\${APP_FULL_PATH}"${EndIf}FunctionEnd 如果检测到旧版本,则执行 ExecWait
Function Check32or64BitWindows ${If} ${RunningX64} strcpy $INSTDIR "$PROGRAMFILES64\${APP_FULL_PATH}" SetRegView 64 ${Else} SetRegView 32 strcpy $INSTDIR "$PROGRAMFILES32\${APP_FULL_PATH}" ${EndIf} FunctionEnd 如果检测到旧版本,则执行 ExecWait '"$INSTDIR\uninst.exe" /S' $0 我的卸载部分: 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 ? Section -Post WriteRegStr ${APP_UNINST_ROOT_KEY} "${APP_UNINST_KEY}" "DisplayName" "${APP_FULL_NAME}" SectionEnd Post部分在Windows 64位注册表视图中创建注册表项,但卸载程序不会删除注册表项. 如果我删除了对64位操作系统的检查,那么在Wow6432Node中创建和删除注册表就可以正常工作. 解决方法如果您不安装x64应用程序,则根本不应使用SetRegView / $PROGRAMFILES64.如果要安装x64应用程序并在安装期间调用SetRegView 64,则还必须在卸载程序中调用SetRegView 64. 使用Process Monitor调查其他注册表问题… (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读