| 1 |
|
| 2 |
#define AppName "Tera Term" |
| 3 |
#ifndef AppVer |
| 4 |
#define AppVer "5.0-alpha1" |
| 5 |
#endif |
| 6 |
;#define VerSubStr |
| 7 |
;#define OutputSubStr |
| 8 |
|
| 9 |
[InnoIDE_PreCompile] |
| 10 |
Name: makechm.bat |
| 11 |
Name: build.bat |
| 12 |
;Name: build.bat; Parameters: rebuild |
| 13 |
|
| 14 |
[InnoIDE_PostCompile] |
| 15 |
;Name: makearchive.bat; Parameters: release |
| 16 |
|
| 17 |
[PreCompile] |
| 18 |
Name: makechm.bat |
| 19 |
Name: build.bat |
| 20 |
;Name: build.bat; Parameters: rebuild |
| 21 |
|
| 22 |
[PostCompile] |
| 23 |
;Name: makearchive.bat; Parameters: release |
| 24 |
|
| 25 |
[_ISToolPreCompile] |
| 26 |
Name: makechm.bat |
| 27 |
Name: build.bat |
| 28 |
;Name: build.bat; Parameters: rebuild |
| 29 |
|
| 30 |
[_ISToolPostCompile] |
| 31 |
;Name: makearchive.bat; Parameters: release |
| 32 |
|
| 33 |
[Setup] |
| 34 |
AppCopyright=(C) 2004-2022 TeraTerm Project |
| 35 |
AppPublisher=TeraTerm Project |
| 36 |
AppPublisherURL=https://ttssh2.osdn.jp/ |
| 37 |
AppSupportURL=https://ttssh2.osdn.jp/ |
| 38 |
AppId={{07A7E17A-F6D6-44A7-82E6-6BEE528CCA2A} |
| 39 |
AppName={#AppName} |
| 40 |
#ifndef VerSubStr |
| 41 |
AppVersion={#AppVer} |
| 42 |
#else |
| 43 |
AppVersion={#AppVer} {#VerSubStr} |
| 44 |
#endif |
| 45 |
LicenseFile=release\license.txt |
| 46 |
DefaultDirName={commonpf}\teraterm5 |
| 47 |
DefaultGroupName={#AppName} 5 |
| 48 |
ShowLanguageDialog=yes |
| 49 |
AllowNoIcons=true |
| 50 |
UninstallDisplayIcon={app}\ttermpro.exe |
| 51 |
#ifndef OutputSubStr |
| 52 |
OutputBaseFilename=teraterm-{#AppVer} |
| 53 |
#else |
| 54 |
OutputBaseFilename=teraterm-{#AppVer}-{#OutputSubStr} |
| 55 |
#endif |
| 56 |
PrivilegesRequired=none |
| 57 |
SolidCompression=yes |
| 58 |
Compression=lzma2/ultra64 |
| 59 |
|
| 60 |
[Languages] |
| 61 |
Name: en; MessagesFile: compiler:Default.isl |
| 62 |
Name: ja; MessagesFile: compiler:Languages\Japanese.isl |
| 63 |
|
| 64 |
[Dirs] |
| 65 |
Name: {app}\theme; Components: TeraTerm |
| 66 |
Name: {app}\theme\scale; Components: TeraTerm |
| 67 |
Name: {app}\theme\tile; Components: TeraTerm |
| 68 |
Name: {app}\plugin; Components: TeraTerm |
| 69 |
Name: {app}\lang; Components: TeraTerm |
| 70 |
Name: {app}\lang_utf16le; Components: TeraTerm |
| 71 |
|
| 72 |
[Files] |
| 73 |
Source: ..\teraterm\release\ttermpro.exe; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion |
| 74 |
Source: ..\teraterm\release\ttpcmn.dll; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion |
| 75 |
Source: ..\teraterm\release\ttptek.dll; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion |
| 76 |
Source: release\TERATERM.INI; DestDir: {app}; Components: TeraTerm |
| 77 |
Source: release\TSPECIAL1.TTF; DestDir: {commonfonts}; Components: TeraTerm; Attribs: readonly; Flags: onlyifdoesntexist overwritereadonly uninsneveruninstall; FontInstall: Tera Special; Check: isAbleToInstallFont |
| 78 |
;Source: release\TSPECIAL1.TTF; DestDir: {app}; Components: TeraTerm |
| 79 |
Source: ..\doc\en\teraterm.chm; DestDir: {app}; Components: TeraTerm |
| 80 |
Source: ..\doc\ja\teratermj.chm; DestDir: {app}; Components: TeraTerm |
| 81 |
Source: release\license.txt; DestDir: {app}; Components: TeraTerm |
| 82 |
Source: release\FUNCTION.CNF; DestDir: {app}; Components: TeraTerm |
| 83 |
Source: release\IBMKEYB.CNF; DestDir: {app}; Components: TeraTerm |
| 84 |
Source: release\EDITOR.CNF; DestDir: {app}; Components: TeraTerm; DestName: KEYBOARD.CNF |
| 85 |
Source: release\EDITOR.CNF; DestDir: {app}; Components: TeraTerm |
| 86 |
Source: release\NT98KEYB.CNF; DestDir: {app}; Components: TeraTerm |
| 87 |
Source: release\PC98KEYB.CNF; DestDir: {app}; Components: TeraTerm |
| 88 |
Source: ..\teraterm\release\keycode.exe; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion |
| 89 |
Source: ..\teraterm\release\ttpmacro.exe; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion |
| 90 |
Source: release\delpassw.ttl; DestDir: {app}; Components: TeraTerm |
| 91 |
Source: release\dialup.ttl; DestDir: {app}; Components: TeraTerm |
| 92 |
Source: release\login.ttl; DestDir: {app}; Components: TeraTerm |
| 93 |
Source: release\mpause.ttl; DestDir: {app}; Components: TeraTerm |
| 94 |
Source: release\random.ttl; DestDir: {app}; Components: TeraTerm |
| 95 |
Source: release\screencapture.ttl; DestDir: {app}; Components: TeraTerm |
| 96 |
Source: release\ssh2login.ttl; DestDir: {app}; Components: TeraTerm |
| 97 |
Source: release\wait_regex.ttl; DestDir: {app}; Components: TeraTerm |
| 98 |
Source: release\lang\Default.lng; DestDir: {app}\lang; Components: TeraTerm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify |
| 99 |
Source: release\lang\Japanese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 100 |
Source: release\lang\German.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 101 |
Source: release\lang\French.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 102 |
Source: release\lang\Russian.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 103 |
Source: release\lang\Korean.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 104 |
Source: release\lang\Simplified Chinese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 105 |
Source: release\lang\Spanish.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 106 |
Source: release\lang\Traditional Chinese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 107 |
Source: release\lang_utf16le\Default.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify |
| 108 |
Source: release\lang_utf16le\Japanese.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 109 |
Source: release\lang_utf16le\German.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 110 |
Source: release\lang_utf16le\French.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 111 |
Source: release\lang_utf16le\Russian.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 112 |
Source: release\lang_utf16le\Korean.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 113 |
Source: release\lang_utf16le\Simplified Chinese.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 114 |
Source: release\lang_utf16le\Spanish.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 115 |
Source: release\lang_utf16le\Traditional Chinese.lng; DestDir: {app}\lang_utf16le; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly |
| 116 |
Source: ..\ttssh2\ttxssh\Release\ttxssh.dll; DestDir: {app}; Components: TTSSH; Flags: ignoreversion |
| 117 |
Source: release\ssh_known_hosts; DestDir: {app}; Components: TTSSH |
| 118 |
Source: ..\cygwin\cygterm\cygterm.cfg; DestDir: {app}; Components: cygterm |
| 119 |
Source: ..\cygwin\cygterm\cygterm+.tar.gz; DestDir: {app}; Components: cygterm |
| 120 |
Source: ..\cygwin\cygterm\cygterm+-x86_64\cygterm.exe; DestDir: {app}; Components: cygterm |
| 121 |
Source: ..\cygwin\Release\cyglaunch.exe; DestDir: {app}; Components: cygterm |
| 122 |
Source: ..\ttpmenu\Release\ttpmenu.exe; DestDir: {app}; Components: TeraTerm_Menu; Flags: ignoreversion |
| 123 |
Source: release\ttmenu_readme-j.txt; DestDir: {app}; Components: TeraTerm_Menu |
| 124 |
Source: ..\TTProxy\Release\TTXProxy.dll; DestDir: {app}; Components: TTProxy; Flags: ignoreversion |
| 125 |
Source: release\theme\Advanced.sample; DestDir: {app}\theme\; Components: TeraTerm |
| 126 |
Source: release\theme\ImageFile.INI; DestDir: {app}\theme\; Components: TeraTerm |
| 127 |
Source: release\theme\Scale.INI; DestDir: {app}\theme\; Components: TeraTerm |
| 128 |
Source: release\theme\Tile.INI; DestDir: {app}\theme\; Components: TeraTerm |
| 129 |
Source: release\theme\scale\23.jpg; DestDir: {app}\theme\scale; Components: TeraTerm |
| 130 |
Source: release\theme\scale\43.jpg; DestDir: {app}\theme\scale; Components: TeraTerm |
| 131 |
Source: release\theme\tile\03.jpg; DestDir: {app}\theme\tile; Components: TeraTerm |
| 132 |
Source: release\theme\tile\44.jpg; DestDir: {app}\theme\tile; Components: TeraTerm |
| 133 |
Source: ..\TTXKanjiMenu\release\ttxkanjimenu.dll; DestDir: {app}\; Components: Additional_Plugins/TTXKanjiMenu; Flags: ignoreversion |
| 134 |
Source: ..\TTXSamples\release\TTXResizeMenu.dll; DestDir: {app}\; Components: Additional_Plugins/TTXResizeMenu; Flags: ignoreversion |
| 135 |
Source: ..\TTXSamples\release\TTXttyrec.dll; DestDir: {app}\; Components: Additional_Plugins/TTXttyrec; Flags: ignoreversion |
| 136 |
Source: ..\TTXSamples\release\TTXttyplay.dll; DestDir: {app}\; Components: Additional_Plugins/TTXttyrec; Flags: ignoreversion |
| 137 |
Source: ..\TTXSamples\release\TTXKcodeChange.dll; DestDir: {app}\; Components: Additional_Plugins/TTXKcodeChange; Flags: ignoreversion |
| 138 |
Source: ..\TTXSamples\release\TTXViewMode.dll; DestDir: {app}\; Components: Additional_Plugins/TTXViewMode; Flags: ignoreversion |
| 139 |
Source: ..\TTXSamples\release\TTXAlwaysOnTop.dll; DestDir: {app}\; Components: Additional_Plugins/TTXAlwaysOnTop; Flags: ignoreversion |
| 140 |
Source: ..\TTXSamples\release\TTXRecurringCommand.dll; DestDir: {app}\; Components: Additional_Plugins/TTXRecurringCommand; Flags: ignoreversion |
| 141 |
|
| 142 |
[Types] |
| 143 |
Name: standard; Description: {cm:type_standard} |
| 144 |
Name: full; Description: {cm:type_full} |
| 145 |
Name: compact; Description: {cm:type_compact} |
| 146 |
Name: custom; Description: {cm:type_custom}; Flags: iscustom |
| 147 |
|
| 148 |
[Components] |
| 149 |
Name: TeraTerm; Description: Tera Term & Macro; Flags: fixed; Types: custom compact full standard |
| 150 |
Name: TTSSH; Description: TTSSH; Types: compact full standard |
| 151 |
Name: cygterm; Description: CygTerm+; Types: full standard; Check: isExecutableCygtermX64 |
| 152 |
Name: TeraTerm_Menu; Description: TeraTerm Menu; Types: full |
| 153 |
Name: TTProxy; Description: TTProxy; Types: full standard |
| 154 |
Name: Additional_Plugins; Description: {cm:comp_TTX} |
| 155 |
Name: Additional_Plugins/TTXResizeMenu; Description: TTXResizeMenu ({cm:comp_TTXResizeMenu}); Types: full standard |
| 156 |
Name: Additional_Plugins/TTXttyrec; Description: TTXttyrec ({cm:comp_TTXttyrec}); Types: full standard |
| 157 |
Name: Additional_Plugins/TTXKanjiMenu; Description: TTXKanjiMenu ({cm:comp_TTXKanjiMenu}); Languages: en |
| 158 |
Name: Additional_Plugins/TTXKanjiMenu; Description: TTXKanjiMenu ({cm:comp_TTXKanjiMenu}); Types: full; Languages: ja |
| 159 |
Name: Additional_Plugins/TTXKcodeChange; Description: TTXKcodeChange ({cm:comp_TTXKcodeChange}); Languages: en |
| 160 |
Name: Additional_Plugins/TTXKcodeChange; Description: TTXKcodeChange ({cm:comp_TTXKcodeChange}); Types: full; Languages: ja |
| 161 |
Name: Additional_Plugins/TTXViewMode; Description: TTXViewMode ({cm:comp_TTXViewMode}); Types: full |
| 162 |
Name: Additional_Plugins/TTXAlwaysOnTop; Description: TTXAlwaysOnTop ({cm:comp_TTXAlwaysOnTop}); Types: full |
| 163 |
Name: Additional_Plugins/TTXRecurringCommand; Description: TTXRecurringCommand ({cm:comp_TTXRecurringCommand}); Types: full |
| 164 |
|
| 165 |
[Icons] |
| 166 |
Name: {group}\Tera Term; Filename: {app}\ttermpro.exe; WorkingDir: {app}; IconFilename: {app}\ttermpro.exe; IconIndex: 0; Components: TeraTerm; Flags: createonlyiffileexists |
| 167 |
Name: {group}\{cm:UninstallProgram,{#AppName}}; Filename: {uninstallexe}; Components: TeraTerm; Flags: createonlyiffileexists |
| 168 |
Name: {group}\cyglaunch; Filename: {app}\cyglaunch.exe; WorkingDir: {app}; IconFilename: {app}\cyglaunch.exe; IconIndex: 0; Components: cygterm; Flags: createonlyiffileexists |
| 169 |
Name: {group}\TeraTerm Menu; Filename: {app}\ttpmenu.exe; WorkingDir: {app}; IconFilename: {app}\ttpmenu.exe; IconIndex: 0; Components: TeraTerm_Menu; Flags: createonlyiffileexists |
| 170 |
Name: {userdesktop}\Tera Term 5; Filename: {app}\ttermpro.exe; WorkingDir: {app}; IconFilename: {app}\ttermpro.exe; Components: TeraTerm; Tasks: desktopicon; IconIndex: 0; Flags: createonlyiffileexists |
| 171 |
Name: {userstartup}\TeraTerm Menu; Filename: {app}\ttpmenu.exe; WorkingDir: {app}; IconFilename: {app}\ttpmenu.exe; Components: TeraTerm_Menu; IconIndex: 0; Tasks: startupttmenuicon; Flags: createonlyiffileexists |
| 172 |
|
| 173 |
[Registry] |
| 174 |
; Cygterm Here |
| 175 |
Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm; ValueType: string; ValueData: Cy>erm Here; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 176 |
Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm; ValueType: string; ValueName: Icon; ValueData: """{app}\cyglaunch.exe"""; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 177 |
Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -v CHERE_INVOKING=y -d ""\""%L\"""""; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 178 |
; Cygterm Here from folder Background |
| 179 |
Root: HKCU; Subkey: Software\Classes\Directory\Background\shell\cygterm; ValueType: string; ValueData: Cy>erm Here; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 180 |
Root: HKCU; Subkey: Software\Classes\Directory\Background\shell\cygterm; ValueType: string; ValueName: Icon; ValueData: """{app}\cyglaunch.exe"""; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 181 |
Root: HKCU; Subkey: Software\Classes\Directory\Background\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -v CHERE_INVOKING=y -d ""\""%V\"""""; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 182 |
Root: HKCU; Subkey: Software\Classes\LibraryFolder\Background\shell\cygterm; ValueType: string; ValueData: Cy>erm Here; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 183 |
Root: HKCU; Subkey: Software\Classes\LibraryFolder\Background\shell\cygterm; ValueType: string; ValueName: Icon; ValueData: """{app}\cyglaunch.exe"""; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 184 |
Root: HKCU; Subkey: Software\Classes\LibraryFolder\Background\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -v CHERE_INVOKING=y -d ""\""%V\"""""; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere |
| 185 |
; Associate with .TTL |
| 186 |
Root: HKCU; Subkey: Software\Classes\.ttl; ValueType: string; ValueData: TeraTerm.MacroFile; Flags: uninsdeletekey; Components: TeraTerm; Tasks: macroassoc |
| 187 |
Root: HKCU; Subkey: Software\Classes\TeraTerm.MacroFile; ValueType: string; ValueData: Tera Term Macro File; Flags: uninsdeletekey; Components: TeraTerm; Tasks: macroassoc |
| 188 |
Root: HKCU; Subkey: Software\Classes\TeraTerm.MacroFile\DefaultIcon; ValueType: string; ValueData: {app}\ttpmacro.exe,3; Flags: uninsdeletekey; Components: TeraTerm; Tasks: macroassoc |
| 189 |
Root: HKCU; Subkey: Software\Classes\TeraTerm.MacroFile\shell\open\command; ValueType: string; ValueData: """{app}\ttpmacro.exe"" ""%1"""; Flags: uninsdeletekey; Components: TeraTerm; Tasks: macroassoc |
| 190 |
; Associate with telnet:// |
| 191 |
Root: HKCU; Subkey: Software\Classes\telnet\shell; ValueType: string; ValueData: Open with Tera Term; Flags: uninsclearvalue; Components: TeraTerm; Tasks: telnetassoc |
| 192 |
Root: HKCU; Subkey: Software\Classes\telnet\shell\Open with Tera Term\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" /T=1 /nossh %1"; Flags: uninsdeletekey; Components: TeraTerm; Tasks: telnetassoc |
| 193 |
; Associate with ssh:// |
| 194 |
Root: HKCU; Subkey: Software\Classes\ssh; ValueType: string; ValueData: URL: SSH Protocol; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 195 |
Root: HKCU; Subkey: Software\Classes\ssh; ValueName: URL Protocol; ValueType: string; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 196 |
Root: HKCU; Subkey: Software\Classes\ssh; ValueName: EditFlags; ValueType: dword; ValueData: 2; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 197 |
Root: HKCU; Subkey: Software\Classes\ssh\DefaultIcon; ValueType: string; ValueData: """{app}\ttxssh.dll"",0"; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 198 |
Root: HKCU; Subkey: Software\Classes\ssh\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" %1"; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 199 |
; Associate with slogin:// |
| 200 |
Root: HKCU; Subkey: Software\Classes\slogin; ValueType: string; ValueData: URL: slogin Protocol; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 201 |
Root: HKCU; Subkey: Software\Classes\slogin; ValueName: URL Protocol; ValueType: string; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 202 |
Root: HKCU; Subkey: Software\Classes\slogin; ValueName: EditFlags; ValueType: dword; ValueData: 2; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 203 |
Root: HKCU; Subkey: Software\Classes\slogin\DefaultIcon; ValueType: string; ValueData: """{app}\ttxssh.dll"",0"; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 204 |
Root: HKCU; Subkey: Software\Classes\slogin\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" %1"; Flags: uninsdeletekey; Components: TTSSH; Tasks: sshassoc |
| 205 |
; Associate with .TTY |
| 206 |
Root: HKCU; Subkey: Software\Classes\.tty; ValueType: string; ValueData: TTYRecordFile; Flags: uninsdeletekey; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc |
| 207 |
Root: HKCU; Subkey: Software\Classes\TTYRecordFile; ValueType: string; ValueData: TTY Record File; Flags: uninsdeletekey; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc |
| 208 |
Root: HKCU; Subkey: Software\Classes\TTYRecordFile\DefaultIcon; ValueType: string; ValueData: {app}\ttermpro.exe,0; Flags: uninsdeletekey; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc |
| 209 |
Root: HKCU; Subkey: Software\Classes\TTYRecordFile\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" /R=""%1"" /TTYPLAY"; Flags: uninsdeletekey; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc |
| 210 |
|
| 211 |
[Tasks] |
| 212 |
Name: desktopicon; Description: {cm:task_desktopicon}; Components: TeraTerm |
| 213 |
; Tera Term 4 のを上書きしないよう、テスト版の間は TeraTerm Menu のデフォルトを off にする |
| 214 |
; Name: startupttmenuicon; Description: {cm:task_startupttmenuicon}; Components: TeraTerm_Menu |
| 215 |
Name: startupttmenuicon; Description: {cm:task_startupttmenuicon}; Components: TeraTerm_Menu; Flags: unchecked |
| 216 |
Name: cygtermhere; Description: {cm:task_cygtermhere}; Components: cygterm; Flags: unchecked |
| 217 |
Name: macroassoc; Description: {cm:task_macroassoc}; Components: TeraTerm; Flags: unchecked |
| 218 |
Name: telnetassoc; Description: {cm:task_telnetassoc}; Components: TeraTerm; Flags: unchecked |
| 219 |
Name: sshassoc; Description: {cm:task_sshassoc}; Components: TTSSH; Flags: unchecked |
| 220 |
Name: ttyplayassoc; Description: {cm:task_ttyplayassoc}; Components: Additional_Plugins/TTXttyrec; Flags: unchecked |
| 221 |
|
| 222 |
[Run] |
| 223 |
Filename: {app}\ttermpro.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_teraterm}; Components: TeraTerm |
| 224 |
Filename: {app}\ttpmenu.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_ttmenu}; Components: TeraTerm_Menu |
| 225 |
|
| 226 |
[CustomMessages] |
| 227 |
en.task_desktopicon=Create Tera Term shortcut to &Desktop |
| 228 |
en.task_startupttmenuicon=Create TeraTerm &Menu shortcut to Startup |
| 229 |
en.task_cygtermhere=Add "Cy>erm Here" to Context menu |
| 230 |
en.task_macroassoc=Associate .&ttl file to ttpmacro.exe |
| 231 |
en.task_telnetassoc=Associate t&elnet protocol to ttermpro.exe |
| 232 |
en.task_sshassoc=Associate &ssh protocol to ttermpro.exe |
| 233 |
en.task_ttyplayassoc=Associate .tty file to tterm&pro.exe |
| 234 |
ja.task_desktopicon=デスクトップに Tera Term のショートカットを作る(&D) |
| 235 |
ja.task_startupttmenuicon=スタートアップに TeraTerm &Menu のショートカットを作る |
| 236 |
ja.task_cygtermhere=コンテキストメニューに "Cy>erm Here" を追加する |
| 237 |
ja.task_macroassoc=.&ttl ファイルを ttpmacro.exe に関連付ける |
| 238 |
ja.task_telnetassoc=t&elnet プロトコルを ttermpro.exe に関連付ける |
| 239 |
ja.task_sshassoc=&ssh プロトコルを ttermpro.exe に関連付ける |
| 240 |
ja.task_ttyplayassoc=.tty ファイルを tterm&pro.exe に関連付ける |
| 241 |
en.type_standard=Standard installation |
| 242 |
en.type_full=Full installation |
| 243 |
en.type_compact=Compact installation |
| 244 |
en.type_custom=Custom installation |
| 245 |
ja.type_standard=標準インストール |
| 246 |
ja.type_full=フルインストール |
| 247 |
ja.type_compact=コンパクトインストール |
| 248 |
ja.type_custom=カスタムインストール |
| 249 |
en.launch_teraterm=Launch &Tera Term |
| 250 |
en.launch_ttmenu=Launch TeraTerm &Menu |
| 251 |
ja.launch_teraterm=今すぐ &Tera Term を実行する |
| 252 |
ja.launch_ttmenu=今すぐ TeraTerm &Menu を実行する |
| 253 |
en.msg_language_caption=Select Language |
| 254 |
en.msg_language_description=Which language shoud be used? |
| 255 |
en.msg_language_subcaption=Select the language of application's menu and dialog, then click Next. |
| 256 |
en.msg_language_none=&English |
| 257 |
en.msg_language_japanese=&Japanese |
| 258 |
en.msg_language_german=&German |
| 259 |
en.msg_language_french=&French |
| 260 |
en.msg_language_russian=&Russian |
| 261 |
en.msg_language_korean=&Korean |
| 262 |
en.msg_language_chinese=&Chinese(Simplified) |
| 263 |
en.msg_language_tchinese=Chinese(&Traditional) |
| 264 |
ja.msg_language_caption=言語の選択 |
| 265 |
ja.msg_language_description=ユーザーインターフェースの言語を選択してください。 |
| 266 |
ja.msg_language_subcaption=アプリケーションのメニューやダイアログ等の表示言語を選択して、「次へ」をクリックしてください。 |
| 267 |
ja.msg_language_none=英語(&E) |
| 268 |
ja.msg_language_japanese=日本語(&J) |
| 269 |
ja.msg_language_german=ドイツ語(&G) |
| 270 |
ja.msg_language_french=フランス語(&F) |
| 271 |
ja.msg_language_russian=ロシア語(&R) |
| 272 |
ja.msg_language_korean=韓国語(&K) |
| 273 |
ja.msg_language_chinese=簡体字中国語(&C) |
| 274 |
ja.msg_language_tchinese=繁体字中国語(&T) |
| 275 |
en.msg_del_confirm=Are you sure that you want to delete %s ? |
| 276 |
ja.msg_del_confirm=%s を削除しますか? |
| 277 |
en.msg_uninstall_confirm=It seems a former version is installed. You are recommended to uninstall it previously. Do you uninstall former version ? |
| 278 |
ja.msg_uninstall_confirm=以前のバージョンがインストールされているようです。先にアンインストールすることをお勧めします。アンインストールしますか? |
| 279 |
en.comp_TTX=Additional Plugins |
| 280 |
ja.comp_TTX=追加プラグイン |
| 281 |
en.comp_TTXResizeMenu=VT-Window size can be changed from preset |
| 282 |
ja.comp_TTXResizeMenu=VTウィンドウのサイズをプリセット値の中から変更できるようにする |
| 283 |
en.comp_TTXttyrec=ttyrec format record data can be recorded or playback |
| 284 |
ja.comp_TTXttyrec=ttyrec形式の録画データを記録/再生できるようにする |
| 285 |
en.comp_TTXKanjiMenu=Changes Japanese Kanji Code from VT-Window menu |
| 286 |
ja.comp_TTXKanjiMenu=日本語の漢字コードをVTウィンドウのメニューから設定できるようにする |
| 287 |
en.comp_TTXKcodeChange=Change Japanese Kanji code by remote sequence |
| 288 |
ja.comp_TTXKcodeChange=リモートからのシーケンスで日本語の漢字コードを変更する |
| 289 |
en.comp_TTXViewMode=View-only mode can be used |
| 290 |
ja.comp_TTXViewMode=表示専用モードにすることができる |
| 291 |
en.comp_TTXAlwaysOnTop=Always On Top can be used |
| 292 |
ja.comp_TTXAlwaysOnTop=常に最前面に表示できるようにする |
| 293 |
en.comp_TTXRecurringCommand=Recurring Command can be used |
| 294 |
ja.comp_TTXRecurringCommand=定期的に文字列を送信する |
| 295 |
en.comp_installer=Other installer is started |
| 296 |
ja.comp_installer=インストーラが起動します |
| 297 |
en.msg_AppRunningError=Setup has detected that %s is currently running.%n%nPlease close all instances of it now, then click Next to continue. |
| 298 |
ja.msg_AppRunningError=セットアップは実行中の %s を検出しました。%n%n開いているアプリケーションをすべて閉じてから「次へ」をクリックしてください。 |
| 299 |
|
| 300 |
[Code] |
| 301 |
const |
| 302 |
SHCNF_IDLIST = $0000; |
| 303 |
SHCNE_ASSOCCHANGED = $08000000; |
| 304 |
IMAGE_FILE_MACHINE_UNKNOWN = $0000; |
| 305 |
IMAGE_FILE_MACHINE_I386 = $014c; |
| 306 |
IMAGE_FILE_MACHINE_AMD64 = $8664; |
| 307 |
|
| 308 |
procedure SHChangeNotify(wEventId, uFlags, dwItem1, dwItem2: Integer); |
| 309 |
external 'SHChangeNotify@shell32.dll stdcall'; |
| 310 |
|
| 311 |
var |
| 312 |
UILangFilePage: TInputOptionWizardPage; |
| 313 |
|
| 314 |
|
| 315 |
// Windows 11 or later |
| 316 |
function isWin11OrLater : Boolean; |
| 317 |
var |
| 318 |
Version: TWindowsVersion; |
| 319 |
begin; |
| 320 |
GetWindowsVersionEx(Version); |
| 321 |
if (Version.Major >= 10) and (Version.Build >= 22000) then |
| 322 |
Result := True |
| 323 |
else |
| 324 |
Result := False; |
| 325 |
end; |
| 326 |
|
| 327 |
// Cygterm x86_64 is executable |
| 328 |
function isExecutableCygtermX64 : Boolean; |
| 329 |
begin |
| 330 |
if ProcessorArchitecture = paX64 then |
| 331 |
Result := True |
| 332 |
else if ProcessorArchitecture = paARM64 then |
| 333 |
// x86_64 binary is executable on ARM64 by WoW64 |
| 334 |
if isWin11OrLater then |
| 335 |
Result := True |
| 336 |
else |
| 337 |
Result := False |
| 338 |
else |
| 339 |
Result := False; |
| 340 |
end; |
| 341 |
|
| 342 |
// Admins or PowerUsers |
| 343 |
function isAbleToInstallFont : Boolean; |
| 344 |
begin; |
| 345 |
if IsAdmin() then begin |
| 346 |
Result := True; |
| 347 |
end else begin |
| 348 |
Result := False |
| 349 |
end; |
| 350 |
end; |
| 351 |
|
| 352 |
{ |
| 353 |
// If value is not found in INI, returns "" |
| 354 |
function GetIniString2(Section:String; Key:String; Filename:String) : String; |
| 355 |
var |
| 356 |
Default1: String; |
| 357 |
Default2: String; |
| 358 |
Value1: String; |
| 359 |
Value2: String; |
| 360 |
begin |
| 361 |
Default1 := 'on'; |
| 362 |
Default2 := 'off'; |
| 363 |
Value1 := GetIniString(Section, Key, Default1, Filename); |
| 364 |
Value2 := GetIniString(Section, Key, Default2, Filename); |
| 365 |
|
| 366 |
if Value1 <> Value2 then |
| 367 |
// no value in INI |
| 368 |
Result := '' |
| 369 |
else |
| 370 |
// value in INI |
| 371 |
Result := Value1 |
| 372 |
end; |
| 373 |
} |
| 374 |
|
| 375 |
function CheckFileUsing(Filename:String) : integer; |
| 376 |
var |
| 377 |
TmpFileName : String; |
| 378 |
begin |
| 379 |
if FileExists(FileName) then |
| 380 |
begin |
| 381 |
TmpFileName := FileName + '.' + GetDateTimeString('yyyymmddhhnnss', #0, #0); // Tmp file ends with timestamp |
| 382 |
if FileCopy(FileName, TmpFileName, True) then |
| 383 |
if DeleteFile(FileName) then |
| 384 |
if RenameFile(TmpFileName, FileName) then |
| 385 |
Result := 0 |
| 386 |
else |
| 387 |
Result := -1 // permission? |
| 388 |
else |
| 389 |
begin |
| 390 |
Result := 1; // failed to delete |
| 391 |
DeleteFile(TmpFileName); |
| 392 |
end |
| 393 |
else |
| 394 |
Result := -1 // permission? |
| 395 |
end |
| 396 |
else |
| 397 |
Result := 0; |
| 398 |
end; |
| 399 |
|
| 400 |
function CheckAppsUsing() : string; |
| 401 |
var |
| 402 |
FileDir : String; |
| 403 |
FileName : array[0..6] of String; |
| 404 |
FileDesc : array[0..6] of String; |
| 405 |
i : integer; |
| 406 |
begin |
| 407 |
FileDir := ExpandConstant('{app}'); |
| 408 |
FileName[0] := FileDir + '\ttermpro.exe'; |
| 409 |
FileName[1] := FileDir + '\ttpmacro.exe'; |
| 410 |
FileName[2] := FileDir + '\keycode.exe'; |
| 411 |
FileName[3] := FileDir + '\ttpmenu.exe'; |
| 412 |
FileName[4] := FileDir + '\cygterm.exe'; |
| 413 |
FileDesc[0] := 'Tera Term'; |
| 414 |
FileDesc[1] := 'Tera Term Macro'; |
| 415 |
FileDesc[2] := 'Keycode'; |
| 416 |
FileDesc[3] := 'TeraTerm Menu'; |
| 417 |
FileDesc[4] := 'CygTerm+'; |
| 418 |
|
| 419 |
for i := 0 to 4 do |
| 420 |
begin |
| 421 |
case CheckFileUsing(FileName[i]) of |
| 422 |
1: |
| 423 |
// Failed to delete. In use. |
| 424 |
begin |
| 425 |
if Length(Result) > 0 then |
| 426 |
Result := Result + ', ' + FileDesc[i] |
| 427 |
else |
| 428 |
Result := FileDesc[i] |
| 429 |
end; |
| 430 |
else |
| 431 |
// -1: Failed to copy/rename |
| 432 |
// 0: OK |
| 433 |
// NOP |
| 434 |
end; |
| 435 |
end; |
| 436 |
|
| 437 |
end; |
| 438 |
|
| 439 |
function GetDefaultIniFilename : String; |
| 440 |
begin |
| 441 |
Result := ExpandConstant('{app}') + '\TERATERM.INI'; |
| 442 |
end; |
| 443 |
|
| 444 |
procedure SetIniFile(iniFile: String); |
| 445 |
var |
| 446 |
Language : String; |
| 447 |
VTFont : String; |
| 448 |
TEKFont : String; |
| 449 |
TCPPort : integer; |
| 450 |
ViewlogEditor : String; |
| 451 |
CipherOrder : String; |
| 452 |
|
| 453 |
begin |
| 454 |
Language := GetIniString('Tera Term', 'Language', '', iniFile); |
| 455 |
VTFont := GetIniString('Tera Term', 'VTFont', '', iniFile); |
| 456 |
TEKFont := GetIniString('Tera Term', 'TEKFont', '', iniFile); |
| 457 |
TCPPort := GetIniInt('Tera Term', 'TCPPort', 0, 0, 65535, iniFile) |
| 458 |
ViewlogEditor := GetIniString('Tera Term', 'ViewlogEditor', '', iniFile); |
| 459 |
CipherOrder := GetIniString('TTSSH', 'CipherOrder', '', iniFile); |
| 460 |
|
| 461 |
case GetUILanguage and $3FF of |
| 462 |
$04: // Chinese |
| 463 |
begin |
| 464 |
if Length(Language) = 0 then |
| 465 |
SetIniString('Tera Term', 'Language', 'UTF-8', iniFile); |
| 466 |
if Length(VTFont) = 0 then |
| 467 |
SetIniString('Tera Term', 'VTFont', 'Terminal,0,-12,255', iniFile); |
| 468 |
if Length(TEKFont) = 0 then |
| 469 |
SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,255', iniFile); |
| 470 |
SetIniString('Tera Term', 'UnicodeAmbiguousWidth', '2', iniFile); |
| 471 |
SetIniString('Tera Term', 'UnicodeEmojiOverride', 'on', iniFile); |
| 472 |
SetIniString('Tera Term', 'UnicodeEmojiWidth', '2', iniFile); |
| 473 |
end; |
| 474 |
$11: // Japanese |
| 475 |
begin |
| 476 |
if Length(Language) = 0 then |
| 477 |
SetIniString('Tera Term', 'Language', 'Japanese', iniFile); |
| 478 |
if Length(VTFont) = 0 then |
| 479 |
SetIniString('Tera Term', 'VTFont', 'MS ゴシック,0,-16,128', iniFile); |
| 480 |
if Length(TEKFont) = 0 then |
| 481 |
SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,128', iniFile); |
| 482 |
SetIniString('Tera Term', 'UnicodeAmbiguousWidth', '2', iniFile); |
| 483 |
SetIniString('Tera Term', 'UnicodeEmojiOverride', 'on', iniFile); |
| 484 |
SetIniString('Tera Term', 'UnicodeEmojiWidth', '2', iniFile); |
| 485 |
end; |
| 486 |
$12: // Korean |
| 487 |
begin |
| 488 |
if Length(Language) = 0 then |
| 489 |
SetIniString('Tera Term', 'Language', 'Korean', iniFile); |
| 490 |
if Length(VTFont) = 0 then |
| 491 |
SetIniString('Tera Term', 'VTFont', 'Terminal,0,-12,255', iniFile); |
| 492 |
if Length(TEKFont) = 0 then |
| 493 |
SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,255', iniFile); |
| 494 |
SetIniString('Tera Term', 'UnicodeAmbiguousWidth', '2', iniFile); |
| 495 |
SetIniString('Tera Term', 'UnicodeEmojiOverride', 'on', iniFile); |
| 496 |
SetIniString('Tera Term', 'UnicodeEmojiWidth', '2', iniFile); |
| 497 |
end; |
| 498 |
$19: // Russian |
| 499 |
begin |
| 500 |
if Length(Language) = 0 then |
| 501 |
SetIniString('Tera Term', 'Language', 'Russian', iniFile); |
| 502 |
if Length(VTFont) = 0 then |
| 503 |
SetIniString('Tera Term', 'VTFont', 'Terminal,0,-12,255', iniFile); |
| 504 |
if Length(TEKFont) = 0 then |
| 505 |
SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,255', iniFile); |
| 506 |
SetIniString('Tera Term', 'UnicodeAmbiguousWidth', '1', iniFile); |
| 507 |
SetIniString('Tera Term', 'UnicodeEmojiOverride', 'off', iniFile); |
| 508 |
SetIniString('Tera Term', 'UnicodeEmojiWidth', '1', iniFile); |
| 509 |
end; |
| 510 |
else // Other |
| 511 |
begin |
| 512 |
|
| 513 |
if GetUILanguage = $409 then begin // en-US |
| 514 |
|
| 515 |
if Length(Language) = 0 then |
| 516 |
SetIniString('Tera Term', 'Language', 'UTF-8', iniFile); |
| 517 |
|
| 518 |
end else begin // Other |
| 519 |
|
| 520 |
if Length(Language) = 0 then |
| 521 |
SetIniString('Tera Term', 'Language', 'English', iniFile); |
| 522 |
|
| 523 |
end; |
| 524 |
|
| 525 |
if Length(VTFont) = 0 then |
| 526 |
SetIniString('Tera Term', 'VTFont', 'Terminal,0,-12,255', iniFile); |
| 527 |
if Length(TEKFont) = 0 then |
| 528 |
SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,255', iniFile); |
| 529 |
SetIniString('Tera Term', 'UnicodeAmbiguousWidth', '1', iniFile); |
| 530 |
SetIniString('Tera Term', 'UnicodeEmojiOverride', 'off', iniFile); |
| 531 |
SetIniString('Tera Term', 'UnicodeEmojiWidth', '1', iniFile); |
| 532 |
end; |
| 533 |
end; |
| 534 |
|
| 535 |
case UILangFilePage.SelectedValueIndex of |
| 536 |
1: |
| 537 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Japanese.lng', iniFile); |
| 538 |
2: |
| 539 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\German.lng', iniFile); |
| 540 |
3: |
| 541 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\French.lng', iniFile); |
| 542 |
4: |
| 543 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Russian.lng', iniFile); |
| 544 |
5: |
| 545 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Korean.lng', iniFile); |
| 546 |
6: |
| 547 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Simplified Chinese.lng', iniFile); |
| 548 |
7: |
| 549 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Traditional Chinese.lng', iniFile); |
| 550 |
else |
| 551 |
SetIniString('Tera Term', 'UILanguageFile', 'lang\Default.lng', iniFile); |
| 552 |
end; |
| 553 |
|
| 554 |
if TCPPort = 0 then begin |
| 555 |
if WizardIsComponentSelected('TTSSH') then |
| 556 |
SetIniInt('Tera Term', 'TCPPort', 22, iniFile) |
| 557 |
else |
| 558 |
SetIniInt('Tera Term', 'TCPPort', 23, iniFile); |
| 559 |
end; |
| 560 |
|
| 561 |
if ViewlogEditor = 'notepad.exe' then begin |
| 562 |
ViewlogEditor := ExpandConstant('{win}') + '\' + 'notepad.exe'; |
| 563 |
SetIniString('Tera Term', 'ViewlogEditor', ViewlogEditor, iniFile); |
| 564 |
end; |
| 565 |
|
| 566 |
if WizardIsComponentSelected('TTSSH') then |
| 567 |
begin |
| 568 |
// これまでの TERATERM.INI のデフォルト値と同じ値なら、最新のデフォルト値で上書きする |
| 569 |
// 新しく追加した方式が disable line より後ろに行ってしまう現象への対処 |
| 570 |
CipherOrder := GetIniString('TTSSH', 'CipherOrder', '', iniFile); |
| 571 |
if (CompareStr(CipherOrder, 'MLK>H:J=G9I<F8C7D;EB30A@?62') = 0) or |
| 572 |
(CompareStr(CipherOrder, 'K>H:J=G9I<F8C7D;EB30A@?62') = 0) or |
| 573 |
(CompareStr(CipherOrder, 'K>H:J=G9I<F8C7D;A@?EB3062') = 0) or |
| 574 |
(CompareStr(CipherOrder, '>:=9<8C7D;A@?EB3062') = 0) or |
| 575 |
(CompareStr(CipherOrder, '>:=9<87;A@?B3026') = 0) or |
| 576 |
(CompareStr(CipherOrder, '>:=9<87;A@?3026') = 0) or |
| 577 |
(CompareStr(CipherOrder, '>:=9<87;?3026') = 0) or |
| 578 |
(CompareStr(CipherOrder, '<8=9>:7;3026') = 0) or |
| 579 |
(CompareStr(CipherOrder, '87;9:<=>3026') = 0) or |
| 580 |
(CompareStr(CipherOrder, '87;9:3026') = 0) or |
| 581 |
(CompareStr(CipherOrder, '873026') = 0) then |
| 582 |
SetIniString('TTSSH', 'CipherOrder', 'MKN>H:J=G9LI<F8C7D;EB30A@?62', iniFile) |
| 583 |
end; |
| 584 |
|
| 585 |
end; |
| 586 |
|
| 587 |
procedure InitializeWizard; |
| 588 |
var |
| 589 |
UILangFilePageCaption : String; |
| 590 |
UILangFilePageDescription : String; |
| 591 |
UILangFilePageSubCaption : String; |
| 592 |
UILangFilePageNone : String; |
| 593 |
UILangFilePageJapanese : String; |
| 594 |
UILangFilePageGerman : String; |
| 595 |
UILangFilePageFrench : String; |
| 596 |
UILangFilePageRussian : String; |
| 597 |
UILangFilePageKorean : String; |
| 598 |
UILangFilePageChinese : String; |
| 599 |
UILangFilePageTChinese : String; |
| 600 |
begin |
| 601 |
UILangFilePageCaption := CustomMessage('msg_language_caption'); |
| 602 |
UILangFilePageDescription := CustomMessage('msg_language_description'); |
| 603 |
UILangFilePageSubCaption := CustomMessage('msg_language_subcaption'); |
| 604 |
UILangFilePageNone := CustomMessage('msg_language_none'); |
| 605 |
UILangFilePageJapanese := CustomMessage('msg_language_japanese'); |
| 606 |
UILangFilePageGerman := CustomMessage('msg_language_german'); |
| 607 |
UILangFilePageFrench := CustomMessage('msg_language_french'); |
| 608 |
UILangFilePageRussian := CustomMessage('msg_language_russian'); |
| 609 |
UILangFilePageKorean := CustomMessage('msg_language_korean'); |
| 610 |
UILangFilePageChinese := CustomMessage('msg_language_chinese'); |
| 611 |
UILangFilePageTChinese := CustomMessage('msg_language_tchinese'); |
| 612 |
|
| 613 |
UILangFilePage := CreateInputOptionPage(wpSelectComponents, |
| 614 |
UILangFilePageCaption, UILangFilePageDescription, |
| 615 |
UILangFilePageSubCaption, True, False); |
| 616 |
UILangFilePage.Add(UILangFilePageNone); |
| 617 |
UILangFilePage.Add(UILangFilePageJapanese); |
| 618 |
UILangFilePage.Add(UILangFilePageGerman); |
| 619 |
UILangFilePage.Add(UILangFilePageFrench); |
| 620 |
UILangFilePage.Add(UILangFilePageRussian); |
| 621 |
UILangFilePage.Add(UILangFilePageKorean); |
| 622 |
UILangFilePage.Add(UILangFilePageChinese); |
| 623 |
UILangFilePage.Add(UILangFilePageTChinese); |
| 624 |
case ActiveLanguage of |
| 625 |
'ja': |
| 626 |
UILangFilePage.SelectedValueIndex := 1; |
| 627 |
// 他の言語は最新版に追従していないので、日本語だけ特別扱い |
| 628 |
else |
| 629 |
UILangFilePage.SelectedValueIndex := 0; |
| 630 |
end; |
| 631 |
end; |
| 632 |
|
| 633 |
function NextButtonClick(CurPageID: Integer): Boolean; |
| 634 |
var |
| 635 |
iniFile : String; |
| 636 |
ErrMsg : String; |
| 637 |
begin |
| 638 |
Result := True; |
| 639 |
|
| 640 |
case CurPageID of |
| 641 |
|
| 642 |
wpSelectDir: |
| 643 |
begin |
| 644 |
|
| 645 |
ErrMsg := CheckAppsUsing(); |
| 646 |
if Length(ErrMsg) > 0 then |
| 647 |
begin |
| 648 |
MsgBox(Format(CustomMessage('msg_AppRunningError'), [ErrMsg]), mbError, MB_OK); |
| 649 |
Result := False; |
| 650 |
end |
| 651 |
else |
| 652 |
// -1: goto next. Turn over to Inno Setup. |
| 653 |
// 0: goto next. No problem. |
| 654 |
// NOP |
| 655 |
end; |
| 656 |
|
| 657 |
wpSelectComponents: |
| 658 |
begin |
| 659 |
|
| 660 |
if FileExists(GetDefaultIniFileName()) then |
| 661 |
begin |
| 662 |
iniFile := Lowercase(GetIniString('Tera Term', 'UILanguageFile', '', GetDefaultIniFilename())); |
| 663 |
if iniFile = 'lang\japanese.lng' then |
| 664 |
UILangFilePage.SelectedValueIndex := 1 |
| 665 |
else if iniFile = 'lang\german.lng' then |
| 666 |
UILangFilePage.SelectedValueIndex := 2 |
| 667 |
else if iniFile = 'lang\french.lng' then |
| 668 |
UILangFilePage.SelectedValueIndex := 3 |
| 669 |
else if iniFile = 'lang\russian.lng' then |
| 670 |
UILangFilePage.SelectedValueIndex := 4 |
| 671 |
else if iniFile = 'lang\korean.lng' then |
| 672 |
UILangFilePage.SelectedValueIndex := 5 |
| 673 |
else if iniFile = 'lang\simplified chinese.lng' then |
| 674 |
UILangFilePage.SelectedValueIndex := 6 |
| 675 |
else if iniFile = 'lang\traditional chinese.lng' then |
| 676 |
UILangFilePage.SelectedValueIndex := 7 |
| 677 |
else |
| 678 |
UILangFilePage.SelectedValueIndex := 0; |
| 679 |
end; |
| 680 |
|
| 681 |
end; |
| 682 |
end; |
| 683 |
end; |
| 684 |
|
| 685 |
procedure CurStepChanged(CurStep: TSetupStep); |
| 686 |
var |
| 687 |
iniFile : String; |
| 688 |
begin |
| 689 |
case CurStep of |
| 690 |
ssPostInstall: |
| 691 |
begin |
| 692 |
iniFile := GetDefaultIniFilename(); |
| 693 |
SetIniFile(iniFile); |
| 694 |
|
| 695 |
if not WizardIsTaskSelected('cygtermhere') then |
| 696 |
begin; |
| 697 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\Folder\shell\cygterm'); |
| 698 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\Directory\Background\shell\cygterm'); |
| 699 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\LibraryFolder\Background\shell\cygterm'); |
| 700 |
end; |
| 701 |
|
| 702 |
if not WizardIsTaskSelected('macroassoc') then |
| 703 |
begin; |
| 704 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\.ttl'); |
| 705 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\TeraTerm.MacroFile'); |
| 706 |
end; |
| 707 |
|
| 708 |
if not WizardIsTaskSelected('telnetassoc') then |
| 709 |
begin; |
| 710 |
// デフォルトで telnet プロトコルに関連付けがある Windows バージョンがあるため、Tera Term への関連付けだけを削除する |
| 711 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\telnet\shell\Open with Tera Term'); |
| 712 |
RegDeleteValue(HKEY_CURRENT_USER, 'Software\Classes\telnet\shell', ''); |
| 713 |
end; |
| 714 |
|
| 715 |
if not WizardIsTaskSelected('sshassoc') then |
| 716 |
begin; |
| 717 |
// デフォルトの関連付けがないので、プロトコルごと削除 |
| 718 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\ssh'); |
| 719 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\slogin'); |
| 720 |
end; |
| 721 |
|
| 722 |
if not WizardIsTaskSelected('ttyplayassoc') then |
| 723 |
begin; |
| 724 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\.tty'); |
| 725 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\TTYRecordFile'); |
| 726 |
end; |
| 727 |
|
| 728 |
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0); |
| 729 |
|
| 730 |
end; // ssPostInstall |
| 731 |
end; // case CurStep of |
| 732 |
end; // CurStepChanged |
| 733 |
|
| 734 |
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); |
| 735 |
var |
| 736 |
ini : array[0..1] of String; |
| 737 |
buf : String; |
| 738 |
conf : String; |
| 739 |
confmsg : String; |
| 740 |
app : String; |
| 741 |
i, res : Integer; |
| 742 |
silent : Boolean; |
| 743 |
begin |
| 744 |
case CurUninstallStep of |
| 745 |
usPostUninstall: |
| 746 |
begin |
| 747 |
ini[0] := '\lang\Default.lng'; |
| 748 |
ini[1] := '\lang_utf16le\Default.lng'; |
| 749 |
|
| 750 |
conf := CustomMessage('msg_del_confirm'); |
| 751 |
app := ExpandConstant('{app}'); |
| 752 |
|
| 753 |
silent := false; |
| 754 |
for i := 0 to ParamCount() do |
| 755 |
begin |
| 756 |
if (CompareText('/SUPPRESSMSGBOXES', ParamStr(i)) = 0) then |
| 757 |
silent := true; |
| 758 |
end; |
| 759 |
|
| 760 |
if not silent then begin |
| 761 |
|
| 762 |
// delete config files |
| 763 |
for i := 0 to 1 do |
| 764 |
begin |
| 765 |
buf := app + ini[i]; |
| 766 |
if FileExists(buf) then begin |
| 767 |
confmsg := Format(conf, [buf]); |
| 768 |
res := MsgBox(confmsg, mbInformation, MB_YESNO or MB_DEFBUTTON2); |
| 769 |
if res = IDYES then |
| 770 |
DeleteFile(buf); |
| 771 |
end; |
| 772 |
end; |
| 773 |
|
| 774 |
// delete registory |
| 775 |
if RegKeyExists(HKEY_CURRENT_USER, 'Software\ShinpeiTools\TTermMenu') then begin |
| 776 |
confmsg := Format(conf, ['HKEY_CURRENT_USER' + '\Software\ShinpeiTools\TTermMenu']); |
| 777 |
res := MsgBox(confmsg, mbInformation, MB_YESNO or MB_DEFBUTTON2); |
| 778 |
if res = IDYES then begin |
| 779 |
RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\ShinpeiTools\TTermMenu'); |
| 780 |
RegDeleteKeyIfEmpty(HKEY_CURRENT_USER, 'Software\ShinpeiTools'); |
| 781 |
end; |
| 782 |
end; |
| 783 |
|
| 784 |
end; |
| 785 |
|
| 786 |
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0); |
| 787 |
|
| 788 |
// directory is deleted only if empty |
| 789 |
RemoveDir(app + '\lang'); |
| 790 |
RemoveDir(app + '\lang_utf16le'); |
| 791 |
RemoveDir(app); |
| 792 |
end; |
| 793 |
end; |
| 794 |
end; |
| 795 |
|
| 796 |
[InstallDelete] |
| 797 |
; インストーラに含めたことがあり、のちに含めなくなったファイルを指定する。 |
| 798 |
; 新しいインストーラで上書きインストールしたあとのアンインストーラでは削除されないため。 |
| 799 |
Name: {app}\OpenSSH-LICENCE.txt; Type: files |
| 800 |
Name: {app}\cygterm-README.txt; Type: files |
| 801 |
Name: {app}\cygterm-README-j.txt; Type: files |
| 802 |
Name: {app}\keycode.txt; Type: files |
| 803 |
Name: {app}\keycodej.txt; Type: files |
| 804 |
Name: {app}\RE.txt; Type: files |
| 805 |
Name: {app}\RE-ja.txt; Type: files |
| 806 |
Name: {app}\ssh2_readme.txt; Type: files |
| 807 |
Name: {app}\ssh2_readme-j.txt; Type: files |
| 808 |
Name: {app}\utf8_readme.txt; Type: files |
| 809 |
Name: {app}\utf8_readme-j.txt; Type: files |
| 810 |
Name: {app}\OpenSSH-LICENSE.txt; Type: files |
| 811 |
Name: {app}\OpenSSL-LICENSE.txt; Type: files |
| 812 |
Name: {group}\TeraTerm Document.lnk; Type: files |
| 813 |
Name: {group}\TeraTerm Document(Japanese).lnk; Type: files |
| 814 |
Name: {group}\TTSSH Document.lnk; Type: files |
| 815 |
Name: {group}\TTSSH Document(Japanese).lnk; Type: files |
| 816 |
Name: {app}\LogMeTT.hlp; Type: files |
| 817 |
Name: {app}\macro.hlp; Type: files |
| 818 |
Name: {app}\macroj.hlp; Type: files |
| 819 |
Name: {app}\ttermp.hlp; Type: files |
| 820 |
Name: {app}\ttermpj.hlp; Type: files |
| 821 |
Name: {app}\copyfont.bat; Type: files |
| 822 |
Name: {app}\copyfont.pif; Type: files |
| 823 |
Name: {app}\libeay.txt; Type: files |
| 824 |
Name: {app}\cygterm+-x86_64\cyglaunch.exe; Type: files |
| 825 |
Name: {app}\ttpdlg.dll; Type: files |
| 826 |
Name: {app}\ttpset.dll; Type: files |
| 827 |
|
| 828 |
[UninstallDelete] |
| 829 |
; cygterm.exe は cygterm+-x86_64\cygterm.exe か cygterm+-i686\cygterm.exe を |
| 830 |
; スクリプトでコピーしたもので、自動でアンインストールされないため。 |
| 831 |
Name: {app}\cygterm.exe; Type: files |