!define PACKAGE_NAME "RCS-OCR" !define INSTALLER_PREFIX "rcs-ocr" !include "common.nsh" ; Pages !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_INSTFILES ; Uninstaller pages !insertmacro MUI_UNPAGE_WELCOME !insertmacro MUI_UNPAGE_INSTFILES ; Language !insertmacro MUI_LANGUAGE "English" ; Env !macro _EnvSet ReadRegStr $R0 HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" StrCpy $R0 "$R0;$INSTDIR\DB\ocr;$INSTDIR\DB\ocr\face" WriteRegExpandStr HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" "Path" "$R0" System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("Path", "$R0").r0' SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000 !macroend !define EnvSet "!insertmacro _EnvSet" ; Installer Sections Section "Install Section" SecInstall SetDetailsPrint "both" DetailPrint "Setting up the path..." ${EnvSet} DetailPrint "done" DetailPrint "Stopping RCS OCR..." SimpleSC::StopService "RCSOCR" 1 DetailPrint "Extracting OCR files..." SetDetailsPrint "textonly" !cd '..' SetOutPath "$INSTDIR\DB\ocr" File /r "ocr\*.*" SetOutPath "$INSTDIR\DB\lib\rcs-ocr-release" File /r "lib\rcs-ocr-release\*.*" SetOutPath "$INSTDIR\DB\bin" File /r "bin-release\rcs-ocr" SetDetailsPrint "both" DetailPrint "done" ReadRegDWORD $R0 HKLM "Software\HT\RCS" "ocr" IntCmp $R0 1 alreadyinstalled DetailPrint "Creating service RCS OCR..." nsExec::Exec "$INSTDIR\DB\bin\nssm.exe install RCSOCR $INSTDIR\Ruby\bin\ruby.exe $INSTDIR\DB\bin\rcs-ocr" SimpleSC::SetServiceFailure "RCSOCR" "0" "" "" "1" "60000" "1" "60000" "1" "60000" WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\RCSOCR" "DisplayName" "RCS OCR" WriteRegStr HKLM "SYSTEM\CurrentControlSet\Services\RCSOCR" "Description" "Remote Control System OCR processor" nsExec::Exec 'sc config RCSOCR depend= RCSMasterRouter' DetailPrint "done" WriteRegDWORD HKLM "Software\HT\RCS" "ocr" 0x00000001 nsExec::Exec "reg import $INSTDIR\DB\ocr\ocr-key.reg" alreadyinstalled: DetailPrint "Starting RCS OCR..." SimpleSC::StartService "RCSOCR" "" 30 !cd "nsis" DetailPrint "Writing uninstall informations..." SetDetailsPrint "textonly" WriteUninstaller "$INSTDIR\setup\RCS-OCR-uninstall.exe" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCSOCR" "DisplayName" "RCS OCR" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCSOCR" "DisplayIcon" "$INSTDIR\setup\RCS.ico" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCSOCR" "DisplayVersion" "${PACKAGE_VERSION}" WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCSOCR" "UninstallString" "$INSTDIR\setup\RCS-OCR-uninstall.exe" WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCSOCR" "NoModify" 0x00000001 WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCSOCR" "NoRepair" 0x00000001 WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCSOCR" "InstDir" "$INSTDIR" SetDetailsPrint "both" SectionEnd Section Uninstall DetailPrint "Stopping RCS OCR Services..." SimpleSC::StopService "RCSOCR" 1 DetailPrint "done" DetailPrint "Removing RCS OCR Services..." SimpleSC::RemoveService "RCSOCR" DetailPrint "done" DetailPrint "" DetailPrint "Deleting files..." SetDetailsPrint "textonly" ReadRegStr $INSTDIR HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCS" "InstDir" RMDir /r "$INSTDIR\DB\ocr" RMDir /r "$INSTDIR\DB\lib\rcs-ocr-release" Delete "$INSTDIR\DB\lib\rcs-ocr.rb" SetDetailsPrint "both" DetailPrint "done" DetailPrint "" DetailPrint "Removing registry keys..." DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RCSOCR" DeleteRegValue HKLM "Software\HT\RCS" "ocr" DetailPrint "done" SectionEnd Function .onInit !insertmacro CheckInstalled !insertmacro CheckVersion !insertmacro CheckOS FunctionEnd .