Skip to content

Commit

Permalink
fix: installer not interrupted when system version not fit (>=Windows…
Browse files Browse the repository at this point in the history
… 8.1)
  • Loading branch information
fxliang committed Jun 11, 2024
1 parent 3234006 commit 6f3587f
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions output/install.nsi
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ LangString LNKFORUPDATER ${LANG_TRADCHINESE} "【小狼毫】檢查新版本"
LangString LNKFORSETUP ${LANG_TRADCHINESE} "【小狼毫】安裝選項"
LangString LNKFORUNINSTALL ${LANG_TRADCHINESE} "卸載小狼毫"
LangString CONFIRMATION ${LANG_TRADCHINESE} "安裝前,請先卸載舊版本的小狼毫。$\n$\n按下「確定」移除舊版本,按下「取消」放棄本次安裝。"
LangString SYSTEMVERSIONNOTOK ${LANG_TRADCHINESE} "您的系统不被支持,最低系統要求:Windows 8.1!"

!insertmacro MUI_LANGUAGE "SimpChinese"
LangString DISPLAYNAME ${LANG_SIMPCHINESE} "小狼毫输入法"
Expand All @@ -88,6 +89,7 @@ LangString LNKFORUPDATER ${LANG_SIMPCHINESE} "【小狼毫】检查新版本"
LangString LNKFORSETUP ${LANG_SIMPCHINESE} "【小狼毫】安装选项"
LangString LNKFORUNINSTALL ${LANG_SIMPCHINESE} "卸载小狼毫"
LangString CONFIRMATION ${LANG_SIMPCHINESE} '安装前,请先卸载旧版本的小狼毫。$\n$\n点击 "确定" 移除旧版本,或点击 "取消" 放弃本次安装。'
LangString SYSTEMVERSIONNOTOK ${LANG_SIMPCHINESE} "您的系統不被支持,最低系统要求:Windows 8.1!"

!insertmacro MUI_LANGUAGE "English"
LangString DISPLAYNAME ${LANG_ENGLISH} "Weasel"
Expand All @@ -103,10 +105,49 @@ LangString LNKFORUPDATER ${LANG_ENGLISH} "Weasel Check for Updates"
LangString LNKFORSETUP ${LANG_ENGLISH} "Weasel Installation Preference"
LangString LNKFORUNINSTALL ${LANG_ENGLISH} "Uninstall Weasel"
LangString CONFIRMATION ${LANG_ENGLISH} "Before installation, please uninstall the old version of Weasel.$\n$\nPress 'OK' to remove the old version, or 'Cancel' to abort installation."
LangString SYSTEMVERSIONNOTOK ${LANG_ENGLISH} "Your system not supported, minimium system required: Windows 8.1!"

;--------------------------------

Var /GLOBAL WindowsVersion
Var /GLOBAL MajorVersion
Var /GLOBAL MinorVersion
Var /GLOBAL DotPosition

Function FindDotPosition
StrCpy $DotPosition 0 ; Initialize position
loop:
IntOp $DotPosition $DotPosition + 1 ; Increment position
StrCpy $0 $WindowsVersion 1 $DotPosition ; Get character at current position
StrCmp $0 "." 0 loop ; If character is not ".", continue loop
FunctionEnd

Function .onInit
; read CurrentVersion to check if system is equal or greater than Windows 8.1
; if not >= 8.1, quit and MessageBox(if not silent)
ReadRegStr $WindowsVersion HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion

Call FindDotPosition
StrCpy $MajorVersion $WindowsVersion $DotPosition
IntOp $DotPosition $DotPosition + 1
StrCpy $WindowsVersion $WindowsVersion "" $DotPosition
Call FindDotPosition
StrCpy $MinorVersion $WindowsVersion $DotPosition

${If} $MajorVersion < 6
IfSilent quit
MessageBox MB_OK '$(SYSTEMVERSIONNOTOK)'
quit:
Quit
${ElseIf} $MajorVersion == 6
${If} $MinorVersion < 3
IfSilent quit2
MessageBox MB_OK '$(SYSTEMVERSIONNOTOK)'
quit2:
Quit
${EndIf}
${EndIf}
;
ReadRegStr $R0 HKLM "Software\Rime\Weasel" "InstallDir"
StrCmp $R0 "" 0 skip
; The default installation directory
Expand Down

0 comments on commit 6f3587f

Please sign in to comment.