| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- !include "FileFunc.nsh"
- !include "LogicLib.nsh"
- !include "WinMessages.nsh"
- !macro preInit
- ; 检查是否正在运行并关闭程序
- ${If} ${FileExists} "$INSTDIR\智惠映.exe"
- ; 如果程序正在运行,先尝试关闭它
- ExecWait 'taskkill /f /im "智惠映.exe"' $0
- Sleep 1000
- ; 再次检查是否还有进程在运行
- ExecWait 'taskkill /f /im "智惠映.exe" /t' $0
- Sleep 500
- ${EndIf}
- !macroend
- !macro customInstall
- ; 检测是否已安装,如果是则进行覆盖安装
- ${If} ${FileExists} "$INSTDIR\智惠映.exe"
- ; 已安装,进行覆盖安装
- DetailPrint "检测到已安装版本,正在进行覆盖安装..."
- ${Else}
- ; 首次安装
- DetailPrint "首次安装智惠映..."
- ${EndIf}
- !macroend
- !macro customUnInstall
- ; 自定义卸载逻辑:保留output目录
- !macroend
- !macro customRemoveFiles
- ; 选择性删除文件,保留output目录
- ; 删除程序文件,但保留用户数据目录
- ; 删除资源文件
- RMDir /r "$INSTDIR\resources"
- RMDir /r "$INSTDIR\locales"
- RMDir /r "$INSTDIR\swiftshader"
- ; 删除其他程序文件
- Delete "$INSTDIR\*.pak"
- Delete "$INSTDIR\*.dll"
- Delete "$INSTDIR\*.dat"
- Delete "$INSTDIR\*.bin"
- Delete "$INSTDIR\*.html"
- Delete "$INSTDIR\*.json"
- Delete "$INSTDIR\*.exe"
- Delete "$INSTDIR\*.txt"
- Delete "$INSTDIR\*.ico"
- ; 保留用户数据目录 - 不要删除这些!
- ; $INSTDIR\output - 用户生成的图片和数据
- ; $INSTDIR\extraResources - 可能包含用户文件
- DetailPrint "保留用户数据目录: output"
- !macroend
|