; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "沧田扫描软件" #define MyAppVersion "4.36.18100.22330" #define MyAppSetupName "CumtennScan_App_Setup" #define MyAppDefSetupDir "CumtennScan" #define MyAppPublisher "浙江沧田智能信息科技有限公司" [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{ADE66CB2-15FD-4BF8-BFA7-ED3E239C9ACE} AppName={#MyAppName} AppVerName={#MyAppName} AppVersion={#MyAppVersion} DefaultDirName={pf}\{#MyAppDefSetupDir} DefaultGroupName={#MyAppName} VersionInfoVersion={#MyAppVersion} OutputDir=..\..\package OutputBaseFilename={#MyAppSetupName}_{#MyAppVersion} Compression=lzma AppPublisher={#MyAppPublisher} SolidCompression=no UninstallIconFile=uninstall.ico SetupIconFile=CumtennScan_App.ico LicenseFile=CumtennScan_App_License.txt AlwaysShowComponentsList=true ArchitecturesInstallIn64BitMode=x64 PrivilegesRequired=admin DisableWelcomePage=no [Languages] Name: "zn"; MessagesFile: "compiler:Languages/ChineseSimp.isl" [Components] Name: "Upgrade"; Description: "在线升级功能" ; Types: Full Name: "TwainG138"; Description: "CUMTENNSCAN G138 TWAIN" ; Types: Full Name: "TwainG238"; Description: "CUMTENNSCAN G238 TWAIN" ; Types: Full Name: "TwainG303"; Description: "CUMTENNSCAN G303 TWAIN" ; Types: Full Name: "TwainG404"; Description: "CUMTENNSCAN G404 TWAIN" ; Types: Full [Files] ; app Source: ".\CumtennScan_App.ico"; DestDir: "{app}\"; Flags: ignoreversion ;Source: "..\..\..\..\code_app\doc\scanner\CumtennScan_App_Help_manual.pdf"; DestDir: "{app}\"; Flags: ignoreversion ;Source: "..\..\..\..\code_app\doc\scanner\CumtennScan_scanSettings_Help_manual.pdf"; DestDir: "{app}\"; Flags: ignoreversion ; app32 Source: "..\..\x86\Qt\iconengines\*"; DestDir: "{app}\iconengines\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\tessdata\*"; DestDir: "{app}\tessdata\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Qt\imageformats\*"; DestDir: "{app}\imageformats\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Qt\platforms\*"; DestDir: "{app}\platforms\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Qt\styles\*"; DestDir: "{app}\styles\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Qt\translations\*"; DestDir: "{app}\translations\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Qt\*.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\CumtennScan.exe"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\CTSUpgradeApp.exe"; DestDir: "{app}\"; Flags: ignoreversion; Components: Upgrade; Check: not Is64BitInstallMode Source: "..\..\x86\Release\CTSBase.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\CTSImgFmt.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\CTSImgProc.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\CTSVersion.dll"; DestDir: "{app}\"; Flags: ignoreversion; Components: Upgrade; Check: not Is64BitInstallMode Source: "..\..\x86\Release\libmupdf.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\pdflib.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\msvcp140.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\vcruntime140.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\Release\concrt140.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\OEM\cumtenn\sane.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode Source: "..\..\x86\OEM\cumtenn\scanner.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode ; app64 Source: "..\..\x64\Qt\iconengines\*"; DestDir: "{app}\iconengines\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\tessdata\*"; DestDir: "{app}\tessdata\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Qt\imageformats\*"; DestDir: "{app}\imageformats\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Qt\platforms\*"; DestDir: "{app}\platforms\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Qt\styles\*"; DestDir: "{app}\styles\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Qt\translations\*"; DestDir: "{app}\translations\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Qt\*.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\CumtennScan.exe"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\CTSUpgradeApp.exe"; DestDir: "{app}\"; Flags: ignoreversion; Components: Upgrade; Check: Is64BitInstallMode Source: "..\..\x64\Release\CTSBase.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\CTSImgFmt.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\CTSImgProc.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\CTSVersion.dll"; DestDir: "{app}\"; Flags: ignoreversion; Components: Upgrade; Check: Is64BitInstallMode Source: "..\..\x64\Release\libmupdf.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\pdflib.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\msvcp140.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\vcruntime140.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\vcruntime140_1.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\Release\concrt140.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\OEM\cumtenn\sane.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x64\OEM\cumtenn\scanner.dll"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode ; twain32 ;Source: "..\..\..\..\code_app\doc\scanner\CumtennScan_scanSettings_Help_manual.pdf"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\Release\msvcp140.dll"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\Release\vcruntime140.dll"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\Release\concrt140.dll"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\OEM\cumtenn\sane.dll"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\OEM\cumtenn\scanner.dll"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\Release\CTSBase.dll"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\Release\CTSImgFmt.dll"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\Release\CTSImgProc.dll"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\Release\tessdata\*"; DestDir: "{win}\twain_32\CumtennTwain\tessdata\"; Flags: ignoreversion; Check: Is64BitInstallMode Source: "..\..\x86\OEM\cumtenn\cumtenntwain138.ds"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Components: TwainG138; Source: "..\..\x86\OEM\cumtenn\cumtenntwain238.ds"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Components: TwainG238; Source: "..\..\x86\OEM\cumtenn\cumtenntwain303.ds"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Components: TwainG303; Source: "..\..\x86\OEM\cumtenn\cumtenntwain404.ds"; DestDir: "{win}\twain_32\CumtennTwain\"; Flags: ignoreversion; Components: TwainG404; ; twain64 Source: "..\..\x64\OEM\cumtenn\cumtenntwain138.ds"; DestDir: "{win}\twain_64\CumtennTwain\"; Flags: ignoreversion; Components: TwainG138; Check: Is64BitInstallMode Source: "..\..\x64\OEM\cumtenn\cumtenntwain238.ds"; DestDir: "{win}\twain_64\CumtennTwain\"; Flags: ignoreversion; Components: TwainG238; Check: Is64BitInstallMode Source: "..\..\x64\OEM\cumtenn\cumtenntwain303.ds"; DestDir: "{win}\twain_64\CumtennTwain\"; Flags: ignoreversion; Components: TwainG303; Check: Is64BitInstallMode Source: "..\..\x64\OEM\cumtenn\cumtenntwain404.ds"; DestDir: "{win}\twain_64\CumtennTwain\"; Flags: ignoreversion; Components: TwainG404; Check: Is64BitInstallMode ;拷贝驱动 Source: "..\..\usb\cumtenn\cumtennctsa3.inf"; DestDir: "{app}\driver\"; Flags: ignoreversion recursesubdirs; Source: "..\..\usb\cumtenn\cumtennctsa3.cat"; DestDir: "{app}\driver\"; Flags: ignoreversion recursesubdirs; Source: "..\..\usb\cumtenn\cumtennctsa4.inf"; DestDir: "{app}\driver\"; Flags: ignoreversion recursesubdirs; Source: "..\..\usb\cumtenn\cumtennctsa4.cat"; DestDir: "{app}\driver\"; Flags: ignoreversion recursesubdirs; Source: "..\..\x86\Release\DPInst32.exe"; DestDir: "{app}\"; Flags: ignoreversion recursesubdirs; Check: not IsWin64 Source: "..\..\x64\Release\DPInst64.exe"; DestDir: "{app}\"; Flags: ignoreversion recursesubdirs; Check: IsWin64 ; 临时使用 ;Source: "..\..\x86\Release\CTSRemoveOldApp.exe"; DestDir: "{tmp}\"; Flags: ignoreversion ;Source: "..\..\x86\Release\CTSCheckNewApp.exe"; DestDir: "{app}\"; Flags: ignoreversion; Check: not Is64BitInstallMode ;Source: "..\..\x64\Release\CTSCheckNewApp.exe"; DestDir: "{app}\"; Flags: ignoreversion; Check: Is64BitInstallMode [INI] [Icons] Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\CumtennScan.exe" Name: "{group}\{#MyAppName}"; Filename: "{app}\CumtennScan.exe" Name: "{group}\立思辰扫描软件帮助文档"; Filename: "{app}\CumtennScan_App_Help_manual.pdf" Name: "{group}\卸载"; Filename: "{uninstallexe}"; [Registry] Root: HKLM; Subkey: "Software\CumtennScan"; ValueType: string; ValueName: "AppDirectory"; ValueData: "{app}"; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\CumtennScan"; ValueType: string; ValueName: "Application"; ValueData: "{app}\CumtennScan.exe"; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\CumtennScan"; ValueType: string; ValueName: "AppVersion"; ValueData: "{#MyAppVersion}"; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\CumtennScan"; ValueType: string; ValueName: "DriverPath"; ValueData: "{app}"; Flags: uninsdeletekey; Check: not Is64BitInstallMode Root: HKLM; Subkey: "Software\CumtennScan"; ValueType: string; ValueName: "DriverPath"; ValueData: "{win}\twain_32\CumtennTwain"; Flags: uninsdeletekey; Check: Is64BitInstallMode Root: HKLM; Subkey: "Software\CumtennScan"; ValueType: string; ValueName: "DriverPath64"; ValueData: "{app}"; Flags: uninsdeletekey; Check: Is64BitInstallMode Root: HKLM; Subkey: "Software\WOW6432Node\CumtennScan"; ValueType: string; ValueName: "DriverPath"; ValueData: "{win}\twain_32\CumtennTwain"; Flags: uninsdeletekey; Check: Is64BitInstallMode Root: HKLM; Subkey: "Software\WOW6432Node\CumtennScan"; ValueType: string; ValueName: "DriverPath64"; ValueData: "{app}"; Flags: uninsdeletekey; Check: Is64BitInstallMode [Code] var globalInstallPath: String; //初始化时把路径设置到编辑框 procedure InitializeWizard; begin WizardForm.DirEdit.Text := globalInstallPath; end; function GetInstallString(): String; var InstallPath: String; begin InstallPath := ExpandConstant('{pf}\{#MyAppDefSetupDir}'); if RegValueExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ADE66CB2-15FD-4BF8-BFA7-ED3E239C9ACE}_is1', 'Inno Setup: App Path') then begin RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ADE66CB2-15FD-4BF8-BFA7-ED3E239C9ACE}_is1', 'Inno Setup: App Path', InstallPath) end result := InstallPath; end; function InitializeSetup(): boolean; var ErrorCode: Integer; ResultCode: Integer; ResultStr: String; begin Result := false; globalInstallPath := GetInstallString(); ExtractTemporaryFile('CTSRemoveOldApp.exe'); if Exec(ExpandConstant('{tmp}\CTSRemoveOldApp.exe'), '', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode) then begin if 0 = ErrorCode then begin if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{ADE66CB2-15FD-4BF8-BFA7-ED3E239C9ACE}_is1', 'UninstallString', ResultStr) then begin if MsgBox('扫描软件已安装,是否卸载原版本?', mbConfirmation, MB_YESNO) = IDYES then begin ResultStr := RemoveQuotes(ResultStr); if Exec(ResultStr, '/verysilent', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then begin if 0 = ResultCode then begin Sleep(1000) Result := true; end end end end else begin Result := true; end end else if 2 = ErrorCode then begin MsgBox('请先关闭旧版扫描软件!', mbInformation, MB_OK); end else begin MsgBox('卸载旧版扫描软件失败,停止安装!', mbInformation, MB_OK); end end end; function SetUninstallIcon(iconPath:string): Boolean; var InstalledVersion,SubKeyName: String; begin SubKeyName := 'Software\Microsoft\Windows\CurrentVersion\Uninstall\{ADE66CB2-15FD-4BF8-BFA7-ED3E239C9ACE}_is1'; RegWriteStringValue(HKLM,SubKeyName,'DisplayIcon',iconPath); end; function InitializeUninstall(): Boolean; var ErrorCode: Integer; begin Result := false; if Exec(ExpandConstant('{app}\CTSCheckNewApp.exe'), '', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode) then begin if 0 = ErrorCode then begin ShellExec('', ExpandConstant('{app}\CTSUpgradeApp.exe'), '-type=postuninstallinfo -appName=Scanner -desc=uninstall', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); Result := true; end else begin MsgBox('请先关闭扫描软件!', mbInformation, MB_OK); end end end; procedure CurPageChanged(CurPageID: Integer); begin if CurPageID = wpFinished then begin SetUninstallIcon(ExpandConstant('{app}\CumtennScan_App.ico')); end; end; procedure CurUninstallStepChanged(CurUninstallStep:TUninstallStep); begin if CurUninstallStep = usDone then begin DelTree(ExpandConstant('{app}'), True, True, True); DelTree(ExpandConstant('{win}\twain_32\CumtennTwain'), True, True, True); DelTree(ExpandConstant('{win}\twain_64\CumtennTwain'), True, True, True); end; end; [Run] Filename: "{app}\DPInst32"; Parameters: "/path ""{app}\driver"" /sw /se /lm /f"; Check: not IsWin64; Flags: runascurrentuser Filename: "{app}\DPInst64"; Parameters: "/path ""{app}\driver"" /sw /se /lm /f"; Check: IsWin64; Flags: runascurrentuser Filename: "{app}\CTSUpgradeApp.exe"; Parameters:"-type=postinstallinfo -appName=Scanner -desc=install/upgrade"; Components: Upgrade; Flags: runascurrentuser Filename: "{app}\CumtennScan.exe"; Description: "{cm:LaunchProgram, {#MyAppName}}"; Flags: postinstall nowait skipifsilent runascurrentuser [UninstallRun] ; 卸载驱动 ;Filename: "{app}\DPInst32"; Parameters: "/u ""{app}\driver\cumtennusba3.inf"" /q /d"; Check: not IsWin64; Flags: runascurrentuser ;Filename: "{app}\DPInst64"; Parameters: "/u ""{app}\driver\cumtennusba3.inf"" /q /d"; Check: IsWin64; Flags: runascurrentuser ;Filename: "{app}\DPInst32"; Parameters: "/u ""{app}\driver\cumtennusba4.inf"" /q /d"; Check: not IsWin64; Flags: runascurrentuser ;Filename: "{app}\DPInst64"; Parameters: "/u ""{app}\driver\cumtennusba4.inf"" /q /d"; Check: IsWin64; Flags: runascurrentuser