Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/installer/teraterm_cmake.iss.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10846 - (show annotations) (download)
Tue Aug 15 15:04:06 2023 UTC (9 months, 2 weeks ago) by zmatsuo
File size: 43194 byte(s)
cmakeビルドでうまくビルドできなくなっていたので修正

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

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26