• R/O
  • SSH
  • HTTPS

ttssh2: Commit


Commit MetaInfo

Revision8932 (tree)
Time2020-09-05 00:54:17
Authorzmatsuo

Log Message

cmakeビルドでインストーラーをビルドできるようにした

- zip, inno_setup ターゲットを追加
- インストーラーに Unicode 版 lng ファイルを追加した
- installer/teraterm_cmake.iss.in 追加

- teraterm.issのテンプレート

- ci_scripts

- AppVeyor でインストーラが作成されるよう修正

Change Summary

Incremental Difference

--- trunk/CMakeLists.txt (revision 8931)
+++ trunk/CMakeLists.txt (revision 8932)
@@ -3,6 +3,7 @@
33
44 project(teraterm_all)
55
6+option(SETUP_RELEASE "build setup.exe for release" OFF)
67 option(ENABLE_TTXSAMPLES "TTXSamples" ON)
78 option(MORE_WARNING "stronger warning" OFF)
89
@@ -68,7 +69,6 @@
6869 set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -s -Wl,--gc-sections")
6970 endif()
7071
71-### create version_info.h
7272 if(EXISTS "${CMAKE_SOURCE_DIR}/.git/svn")
7373 # git-svn
7474 find_package(Git)
@@ -132,14 +132,35 @@
132132 set(USER "NONAME")
133133 endif()
134134
135+# ソースツリー内に生成ファイルが存在していたら削除する
136+if(EXISTS "${CMAKE_SOURCE_DIR}/teraterm/ttpdlg/svnversion.h")
137+ file(REMOVE "${CMAKE_SOURCE_DIR}/teraterm/ttpdlg/svnversion.h")
138+endif()
139+
140+if(NOT EXISTS "${CMAKE_BINARY_DIR}/build_config.cmake")
141+ execute_process(
142+ COMMAND ${PERL} svnrev.pl --svn \"${Subversion_SVN_EXECUTABLE}\" --git \"${GIT_EXECUTABLE}\" --root ${CMAKE_SOURCE_DIR} --header ${CMAKE_CURRENT_BINARY_DIR}/../teraterm/ttpdlg/svnversion.h --cmake ${CMAKE_BINARY_DIR}/build_config.cmake
143+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/svnrev_perl
144+ )
145+endif()
146+include(${CMAKE_BINARY_DIR}/build_config.cmake)
147+message("revision=\"${SVNVERSION}\"")
148+
149+if(DEFINED SVNVERSION)
150+ set(REVISION_TIME_USER "r${SVNVERSION}-${BUILD_TIME}-${USER}")
151+else()
152+ set(REVISION_TIME_USER "unknown-${BUILD_TIME}-${USER}")
153+endif()
135154 if(NOT DEFINED SNAPSHOT_DIR)
136- if(DEFINED SVNVERSION)
137- string(TIMESTAMP SNAPSHOT_DIR "snapshot-r${SVNVERSION}-%Y%m%d_%H%M%S-${USER}")
138- else()
139- string(TIMESTAMP SNAPSHOT_DIR "snapshot-unknown-%Y%m%d_%H%M%S-${USER}")
140- endif()
155+ set(SNAPSHOT_DIR "snapshot-${REVISION_TIME_USER}")
141156 endif()
142157 set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/${SNAPSHOT_DIR}")
158+if(NOT DEFINED SETUP_EXE)
159+ set(SETUP_EXE "teraterm-${REVISION_TIME_USER}")
160+endif()
161+if(NOT DEFINED SETUP_ZIP)
162+ set(SETUP_ZIP "teraterm-${REVISION_TIME_USER}.zip")
163+endif()
143164
144165 ### create buildinfo.txt
145166 configure_file(
@@ -161,3 +182,4 @@
161182 add_subdirectory(doc)
162183 add_subdirectory(doc_internal)
163184 add_subdirectory(tools)
185+
--- trunk/ci_scripts/appveyor.yml (revision 8931)
+++ trunk/ci_scripts/appveyor.yml (revision 8932)
@@ -98,4 +98,5 @@
9898
9999 artifacts:
100100 - path: build\%ZIP_FILE%
101+ - path: build\%SETUP_FILE%.exe
101102 - path: build\buildinfo.txt
--- trunk/ci_scripts/build_appveyor.bat (revision 8931)
+++ trunk/ci_scripts/build_appveyor.bat (revision 8932)
@@ -41,8 +41,12 @@
4141 cd %BUILD_DIR%
4242 if exist cmakecache.txt del cmakecache.txt
4343 set ZIP_FILE=snapshot-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY%.zip
44+set SETUP_FILE=snapshot-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY%
4445 set SNAPSHOT_DIR=snapshot-r%SVNVERSION%-%DATE%_%TIME%-appveyor-%COMPILER_FRIENDLY%
45-"%CMAKE_COMMAND%" .. -G "%GENERATOR%" %CMAKE_OPTION_GENERATE% -DSNAPSHOT_DIR=%SNAPSHOT_DIR%
46+"%CMAKE_COMMAND%" .. -G "%GENERATOR%" %CMAKE_OPTION_GENERATE% -DSNAPSHOT_DIR=%SNAPSHOT_DIR% -DSETUP_ZIP=%ZIP_FILE% -DSETUP_EXE=%SETUP_FILE% -DSETUP_RELEASE=%RELEASE%
4647 "%CMAKE_COMMAND%" --build . --target install %CMAKE_OPTION_BUILD%
47-"%CMAKE_COMMAND%" -E tar "cvf" %ZIP_FILE% --format=zip %SNAPSHOT_DIR%
48+"%CMAKE_COMMAND%" --build . --target zip
49+if NOT "%COMPILER%" == "mingw" if NOT "%COMPILER%" == "mingw_x64" (
50+ "%CMAKE_COMMAND%" --build . --target inno_setup
51+)
4852 cd ..
--- trunk/installer/CMakeLists.txt (revision 8931)
+++ trunk/installer/CMakeLists.txt (revision 8932)
@@ -290,3 +290,64 @@
290290 DESTINATION ./cygterm+-x86_64
291291 )
292292 endif()
293+
294+# Inno Setup
295+# Create setup.exe
296+find_program(
297+ ISCC ISCC.exe
298+ HINTS "C:/Program Files (x86)/Inno Setup 6/"
299+ HINTS "C:/Program Files (x86)/Inno Setup 5/"
300+ HINTS "C:/Program Files/Inno Setup 6/"
301+ HINTS "C:/Program Files/Inno Setup 5/"
302+ HINTS "$ENV{LOCALAPPDATA}/Programs/Inno Setup 6"
303+ HINTS "$ENV{LOCALAPPDATA}/Programs/Inno Setup 5"
304+ )
305+message("ISCC=${ISCC}")
306+
307+if(MINGW)
308+ add_custom_target(
309+ inno_setup
310+ COMMAND "${CMAKE_COMMAND}" -E echo "inno setup can not create setup.exe on mingw"
311+ )
312+elseif("${ISCC}" STREQUAL "ISCC-NOTFOUND")
313+ add_custom_target(
314+ inno_setup
315+ COMMAND "${CMAKE_COMMAND}" -E echo "inno setup not found"
316+ )
317+else()
318+ add_subdirectory(cygtool)
319+
320+ configure_file(
321+ teraterm_cmake.iss.in teraterm_cmake.iss
322+ NEWLINE_STYLE CRLF
323+ )
324+
325+ set(ISCC_OPTION "/DOUTPUT_FILENAME=${SETUP_EXE}")
326+ if (SETUP_RELEASE)
327+ list(APPEND ISCC_OPTION "/DSETUP_RELEASE=1")
328+ endif()
329+ add_custom_target(
330+ inno_setup
331+# COMMAND "${CMAKE_COMMAND}" --build . --target install
332+ COMMAND "${CMAKE_COMMAND}" -E echo "${ISCC} ${ISCC_OPTION} teraterm_cmake.iss"
333+ COMMAND "${ISCC}" ${ISCC_OPTION} teraterm_cmake.iss
334+ WORKING_DIRECTORY ${CMAKE_CURRENT_BUILD_DIR}
335+ )
336+endif()
337+set_target_properties(
338+ inno_setup
339+ PROPERTIES FOLDER installer
340+ )
341+
342+# zip
343+add_custom_target(
344+ zip
345+# COMMAND "${CMAKE_COMMAND}" --build . --target install
346+ COMMAND "${CMAKE_COMMAND}" -E tar cvf ${SETUP_ZIP} --format=zip ${CMAKE_INSTALL_PREFIX}
347+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
348+ )
349+
350+set_target_properties(
351+ zip
352+ PROPERTIES FOLDER installer
353+ )
--- trunk/installer/teraterm_cmake.iss.in (nonexistent)
+++ trunk/installer/teraterm_cmake.iss.in (revision 8932)
@@ -0,0 +1,983 @@
1+#define AppName "Tera Term"
2+#define AppVer "5.0"
3+#ifdef SETUP_RELEASE
4+#else
5+#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
6+#endif
7+
8+[InnoIDE_PreCompile]
9+Name: makechm.bat
10+Name: build.bat
11+;Name: build.bat; Parameters: rebuild
12+
13+[InnoIDE_PostCompile]
14+;Name: makearchive.bat; Parameters: release
15+
16+[PreCompile]
17+Name: makechm.bat
18+Name: build.bat
19+;Name: build.bat; Parameters: rebuild
20+
21+[PostCompile]
22+;Name: makearchive.bat; Parameters: release
23+
24+[_ISToolPreCompile]
25+Name: makechm.bat
26+Name: build.bat
27+;Name: build.bat; Parameters: rebuild
28+
29+[_ISToolPostCompile]
30+;Name: makearchive.bat; Parameters: release
31+
32+[Setup]
33+AppCopyright=(C) 2004-2020 TeraTerm Project
34+AppPublisher=TeraTerm Project
35+AppPublisherURL=https://ttssh2.osdn.jp/
36+AppSupportURL=https://ttssh2.osdn.jp/
37+AppName={#AppName}
38+#ifdef SETUP_RELEASE
39+AppVersion={#AppVer}
40+AppVerName={#AppName} {#AppVer}
41+#else
42+AppVersion={#AppVer}+ snapshot-{#snapshot}
43+AppVerName={#AppName} {#AppVer}+
44+#endif
45+LicenseFile=@PROJECT_SOURCE_DIR@/installer\release\license.txt
46+DefaultDirName={pf}\teraterm
47+DefaultGroupName={#AppName}
48+ShowLanguageDialog=yes
49+AllowNoIcons=true
50+UninstallDisplayIcon={app}\ttermpro.exe
51+#ifdef SETUP_RELEASE
52+OutputBaseFilename=teraterm-{#AppVer}
53+#else
54+OutputBaseFilename={#OUTPUT_FILENAME}
55+#endif
56+PrivilegesRequired=none
57+SolidCompression=yes
58+Compression=lzma2/ultra64
59+OutputDir=@PROJECT_BINARY_DIR@
60+
61+[Languages]
62+Name: en; MessagesFile: compiler:Default.isl
63+Name: ja; MessagesFile: compiler:Languages\Japanese.isl
64+
65+[Dirs]
66+Name: {app}\Collector; Components: Collector
67+Name: {app}\theme; Components: TeraTerm
68+Name: {app}\theme\scale; Components: TeraTerm
69+Name: {app}\theme\tile; Components: TeraTerm
70+Name: {app}\plugin; Components: TeraTerm
71+Name: {app}\lang; Components: TeraTerm
72+
73+[Files]
74+Source: @CMAKE_INSTALL_PREFIX@/ttermpro.exe; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion
75+Source: @CMAKE_INSTALL_PREFIX@/ttpcmn.dll; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion
76+Source: @CMAKE_INSTALL_PREFIX@/ttpfile.dll; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion
77+Source: @CMAKE_INSTALL_PREFIX@/ttpset.dll; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion
78+Source: @CMAKE_INSTALL_PREFIX@/ttptek.dll; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion
79+Source: @PROJECT_SOURCE_DIR@/installer\release\TERATERM.INI; DestDir: {app}; Components: TeraTerm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify
80+Source: @PROJECT_SOURCE_DIR@/installer\release\TSPECIAL1.TTF; DestDir: {fonts}; Components: TeraTerm; Attribs: readonly; Flags: onlyifdoesntexist overwritereadonly uninsneveruninstall; FontInstall: Tera Special; Check: isAbleToInstallFont
81+;Source: release\TSPECIAL1.TTF; DestDir: {app}; Components: TeraTerm
82+Source: @CMAKE_INSTALL_PREFIX@/teraterm.chm; DestDir: {app}; Components: TeraTerm
83+Source: @CMAKE_INSTALL_PREFIX@/teratermj.chm; DestDir: {app}; Components: TeraTerm
84+Source: @PROJECT_SOURCE_DIR@/installer\release\license.txt; DestDir: {app}; Components: TeraTerm
85+Source: @PROJECT_SOURCE_DIR@/installer\release\FUNCTION.CNF; DestDir: {app}; Components: TeraTerm
86+Source: @PROJECT_SOURCE_DIR@/installer\release\IBMKEYB.CNF; DestDir: {app}; Components: TeraTerm
87+Source: @PROJECT_SOURCE_DIR@/installer\release\EDITOR.CNF; DestDir: {app}; Components: TeraTerm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify; DestName: KEYBOARD.CNF
88+Source: @PROJECT_SOURCE_DIR@/installer\release\EDITOR.CNF; DestDir: {app}; Components: TeraTerm
89+Source: @PROJECT_SOURCE_DIR@/installer\release\NT98KEYB.CNF; DestDir: {app}; Components: TeraTerm
90+Source: @PROJECT_SOURCE_DIR@/installer\release\PC98KEYB.CNF; DestDir: {app}; Components: TeraTerm
91+Source: @CMAKE_INSTALL_PREFIX@/keycode.exe; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion
92+Source: @CMAKE_INSTALL_PREFIX@/ttpmacro.exe; DestDir: {app}; Components: TeraTerm; Flags: ignoreversion
93+Source: @PROJECT_SOURCE_DIR@/installer\release\delpassw.ttl; DestDir: {app}; Components: TeraTerm
94+Source: @PROJECT_SOURCE_DIR@/installer\release\dialup.ttl; DestDir: {app}; Components: TeraTerm
95+Source: @PROJECT_SOURCE_DIR@/installer\release\login.ttl; DestDir: {app}; Components: TeraTerm
96+Source: @PROJECT_SOURCE_DIR@/installer\release\mpause.ttl; DestDir: {app}; Components: TeraTerm
97+Source: @PROJECT_SOURCE_DIR@/installer\release\random.ttl; DestDir: {app}; Components: TeraTerm
98+Source: @PROJECT_SOURCE_DIR@/installer\release\screencapture.ttl; DestDir: {app}; Components: TeraTerm
99+Source: @PROJECT_SOURCE_DIR@/installer\release\ssh2login.ttl; DestDir: {app}; Components: TeraTerm
100+Source: @PROJECT_SOURCE_DIR@/installer\release\wait_regex.ttl; DestDir: {app}; Components: TeraTerm
101+Source: @PROJECT_SOURCE_DIR@/installer\release\lang\Default.lng; DestDir: {app}\lang; Components: TeraTerm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify
102+Source: @PROJECT_SOURCE_DIR@/installer\release\lang\Japanese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
103+Source: @PROJECT_SOURCE_DIR@/installer\release\lang\German.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
104+Source: @PROJECT_SOURCE_DIR@/installer\release\lang\French.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
105+Source: @PROJECT_SOURCE_DIR@/installer\release\lang\Russian.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
106+Source: @PROJECT_SOURCE_DIR@/installer\release\lang\Korean.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
107+Source: @PROJECT_SOURCE_DIR@/installer\release\lang\Simplified Chinese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
108+Source: @PROJECT_SOURCE_DIR@/installer\release\lang\Traditional Chinese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
109+Source: @PROJECT_SOURCE_DIR@/installer\release\lang_utf16le\Default.lng; DestDir: {app}\lang; Components: TeraTerm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify
110+Source: @PROJECT_SOURCE_DIR@/installer\release\lang_utf16le\Japanese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
111+Source: @PROJECT_SOURCE_DIR@/installer\release\lang_utf16le\German.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
112+Source: @PROJECT_SOURCE_DIR@/installer\release\lang_utf16le\French.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
113+Source: @PROJECT_SOURCE_DIR@/installer\release\lang_utf16le\Russian.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
114+Source: @PROJECT_SOURCE_DIR@/installer\release\lang_utf16le\Korean.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
115+Source: @PROJECT_SOURCE_DIR@/installer\release\lang_utf16le\Simplified Chinese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
116+Source: @PROJECT_SOURCE_DIR@/installer\release\lang_utf16le\Traditional Chinese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
117+Source: @CMAKE_INSTALL_PREFIX@/ttxssh.dll; DestDir: {app}; Components: TTSSH; Flags: ignoreversion
118+Source: @PROJECT_SOURCE_DIR@/installer\release\ssh_known_hosts; DestDir: {app}; Components: TTSSH; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify
119+Source: @PROJECT_SOURCE_DIR@/cygterm\cygterm.exe; DestDir: {app}\cygterm+-i686; Components: cygterm
120+Source: @PROJECT_SOURCE_DIR@/cygterm\cygterm.cfg; DestDir: {app}; Components: cygterm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify
121+Source: @PROJECT_SOURCE_DIR@/cygterm\cyglaunch.exe; DestDir: {app}; Components: cygterm
122+Source: @PROJECT_SOURCE_DIR@/cygterm\cygterm+.tar.gz; DestDir: {app}; Components: cygterm
123+Source: @PROJECT_SOURCE_DIR@/cygterm\cygterm+-x86_64\cygterm.exe; DestDir: {app}\cygterm+-x86_64; Components: cygterm
124+Source: @CMAKE_INSTALL_PREFIX@/cygtool.dll; Components: cygterm; Flags: dontcopy
125+;Source: @PROJECT_SOURCE_DIR@/build_vs2019_x64\..\libs\logmett\Setup_LogMeTT_2_12_1.exe; DestDir: {tmp}; Components: LogMeTT; Flags: deleteafterinstall
126+;Source: @PROJECT_SOURCE_DIR@/build_vs2019_x64\..\libs\logmett\Setup_TTLEditor_1_5_1.exe; DestDir: {tmp}; Components: TTLEdit; Flags: deleteafterinstall
127+Source: @CMAKE_INSTALL_PREFIX@/ttpmenu.exe; DestDir: {app}; Components: TeraTerm_Menu; Flags: ignoreversion
128+Source: @PROJECT_SOURCE_DIR@/installer\release\ttmenu_readme-j.txt; DestDir: {app}; Components: TeraTerm_Menu
129+Source: @CMAKE_INSTALL_PREFIX@/TTXProxy.dll; DestDir: {app}; Components: TTProxy; Flags: ignoreversion
130+Source: @PROJECT_SOURCE_DIR@/installer\release\theme\Advanced.sample; DestDir: {app}\theme\; Components: TeraTerm
131+Source: @PROJECT_SOURCE_DIR@/installer\release\theme\ImageFile.INI; DestDir: {app}\theme\; Components: TeraTerm
132+Source: @PROJECT_SOURCE_DIR@/installer\release\theme\Scale.INI; DestDir: {app}\theme\; Components: TeraTerm
133+Source: @PROJECT_SOURCE_DIR@/installer\release\theme\Tile.INI; DestDir: {app}\theme\; Components: TeraTerm
134+Source: @PROJECT_SOURCE_DIR@/installer\release\theme\scale\23.jpg; DestDir: {app}\theme\scale; Components: TeraTerm
135+Source: @PROJECT_SOURCE_DIR@/installer\release\theme\scale\43.jpg; DestDir: {app}\theme\scale; Components: TeraTerm
136+Source: @PROJECT_SOURCE_DIR@/installer\release\theme\tile\03.jpg; DestDir: {app}\theme\tile; Components: TeraTerm
137+Source: @PROJECT_SOURCE_DIR@/installer\release\theme\tile\44.jpg; DestDir: {app}\theme\tile; Components: TeraTerm
138+Source: @PROJECT_SOURCE_DIR@/installer\release\plugin\ttAKJpeg.dll; DestDir: {app}\plugin\; Components: TeraTerm
139+Source: @PROJECT_SOURCE_DIR@/installer\release\plugin\ttAKJpeg.txt; DestDir: {app}\plugin\; Components: TeraTerm
140+Source: @PROJECT_SOURCE_DIR@/installer\release\Collector\Collector.exe; DestDir: {app}\Collector\; Components: Collector
141+Source: @PROJECT_SOURCE_DIR@/installer\release\Collector\collector.ini; DestDir: {app}\Collector\; Components: Collector
142+Source: @PROJECT_SOURCE_DIR@/installer\release\Collector\Collector_org.exe; DestDir: {app}\Collector\; Components: Collector
143+Source: @PROJECT_SOURCE_DIR@/installer\release\Collector\hthook.dll; DestDir: {app}\Collector\; Components: Collector
144+Source: @PROJECT_SOURCE_DIR@/installer\release\Collector\mfc70.dll; DestDir: {app}\Collector\; Components: Collector
145+Source: @PROJECT_SOURCE_DIR@/installer\release\Collector\msvcr70.dll; DestDir: {app}\Collector\; Components: Collector
146+Source: @PROJECT_SOURCE_DIR@/installer\release\Collector\readme.txt; DestDir: {app}\Collector\; Components: Collector
147+Source: @CMAKE_INSTALL_PREFIX@/ttxkanjimenu.dll; DestDir: {app}\; Components: Additional_Plugins/TTXKanjiMenu; Flags: ignoreversion
148+Source: @CMAKE_INSTALL_PREFIX@/TTXResizeMenu.dll; DestDir: {app}\; Components: Additional_Plugins/TTXResizeMenu; Flags: ignoreversion
149+Source: @CMAKE_INSTALL_PREFIX@/TTXttyrec.dll; DestDir: {app}\; Components: Additional_Plugins/TTXttyrec; Flags: ignoreversion
150+Source: @CMAKE_INSTALL_PREFIX@/TTXttyplay.dll; DestDir: {app}\; Components: Additional_Plugins/TTXttyrec; Flags: ignoreversion
151+Source: @CMAKE_INSTALL_PREFIX@/TTXKcodeChange.dll; DestDir: {app}\; Components: Additional_Plugins/TTXKcodeChange; Flags: ignoreversion
152+Source: @CMAKE_INSTALL_PREFIX@/TTXViewMode.dll; DestDir: {app}\; Components: Additional_Plugins/TTXViewMode; Flags: ignoreversion
153+Source: @CMAKE_INSTALL_PREFIX@/TTXAlwaysOnTop.dll; DestDir: {app}\; Components: Additional_Plugins/TTXAlwaysOnTop; Flags: ignoreversion
154+Source: @CMAKE_INSTALL_PREFIX@/TTXRecurringCommand.dll; DestDir: {app}\; Components: Additional_Plugins/TTXRecurringCommand; Flags: ignoreversion
155+
156+[Types]
157+Name: standard; Description: {cm:type_standard}
158+Name: full; Description: {cm:type_full}
159+Name: compact; Description: {cm:type_compact}
160+Name: custom; Description: {cm:type_custom}; Flags: iscustom
161+
162+[Components]
163+Name: TeraTerm; Description: Tera Term & Macro; Flags: fixed; Types: custom compact full standard
164+Name: TTSSH; Description: TTSSH; Types: compact full standard
165+Name: cygterm; Description: CygTerm+; Types: full standard; Check: not isIA64
166+Name: LogMeTT; Description: LogMeTT ({cm:comp_installer}); Types: full; MinVersion: 4.1.1998,4.0.1381sp6
167+Name: TTLEdit; Description: TTLEdit ({cm:comp_installer}); Types: full; MinVersion: 4.1.1998,4.0.1381sp6
168+Name: TeraTerm_Menu; Description: TeraTerm Menu; Types: full
169+Name: TTProxy; Description: TTProxy; Types: full standard
170+Name: Collector; Description: Collector; Types: full
171+Name: Additional_Plugins; Description: {cm:comp_TTX}
172+Name: Additional_Plugins/TTXResizeMenu; Description: TTXResizeMenu ({cm:comp_TTXResizeMenu}); Types: full standard
173+Name: Additional_Plugins/TTXttyrec; Description: TTXttyrec ({cm:comp_TTXttyrec}); Types: full standard
174+Name: Additional_Plugins/TTXKanjiMenu; Description: TTXKanjiMenu ({cm:comp_TTXKanjiMenu}); Languages: en
175+Name: Additional_Plugins/TTXKanjiMenu; Description: TTXKanjiMenu ({cm:comp_TTXKanjiMenu}); Types: full; Languages: ja
176+Name: Additional_Plugins/TTXKcodeChange; Description: TTXKcodeChange ({cm:comp_TTXKcodeChange}); Languages: en
177+Name: Additional_Plugins/TTXKcodeChange; Description: TTXKcodeChange ({cm:comp_TTXKcodeChange}); Types: full; Languages: ja
178+Name: Additional_Plugins/TTXViewMode; Description: TTXViewMode ({cm:comp_TTXViewMode}); Types: full
179+Name: Additional_Plugins/TTXAlwaysOnTop; Description: TTXAlwaysOnTop ({cm:comp_TTXAlwaysOnTop}); Types: full
180+Name: Additional_Plugins/TTXRecurringCommand; Description: TTXRecurringCommand ({cm:comp_TTXRecurringCommand}); Types: full
181+
182+[Icons]
183+Name: {group}\Tera Term; Filename: {app}\ttermpro.exe; WorkingDir: {app}; IconFilename: {app}\ttermpro.exe; IconIndex: 0; Components: TeraTerm; Flags: createonlyiffileexists
184+Name: {group}\{cm:UninstallProgram,{#AppName}}; Filename: {uninstallexe}; Components: TeraTerm; Flags: createonlyiffileexists
185+Name: {group}\cyglaunch; Filename: {app}\cyglaunch.exe; WorkingDir: {app}; IconFilename: {app}\cyglaunch.exe; IconIndex: 0; Components: cygterm; Flags: createonlyiffileexists
186+Name: {group}\TeraTerm Menu; Filename: {app}\ttpmenu.exe; WorkingDir: {app}; IconFilename: {app}\ttpmenu.exe; IconIndex: 0; Components: TeraTerm_Menu; Flags: createonlyiffileexists
187+Name: {group}\Collector; Filename: {app}\Collector\Collector.exe; WorkingDir: {app}\Collector; IconFilename: {app}\Collector\Collector.exe; IconIndex: 0; Components: Collector; Flags: createonlyiffileexists
188+Name: {userdesktop}\Tera Term; Filename: {app}\ttermpro.exe; WorkingDir: {app}; IconFilename: {app}\ttermpro.exe; Components: TeraTerm; Tasks: desktopicon; IconIndex: 0; Flags: createonlyiffileexists
189+Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\Tera Term; Filename: {app}\ttermpro.exe; WorkingDir: {app}; IconFilename: {app}\ttermpro.exe; Components: TeraTerm; Tasks: quicklaunchicon; IconIndex: 0; Flags: createonlyiffileexists
190+Name: {userstartup}\TeraTerm Menu; Filename: {app}\ttpmenu.exe; WorkingDir: {app}; IconFilename: {app}\ttpmenu.exe; Components: TeraTerm_Menu; IconIndex: 0; Tasks: startupttmenuicon; Flags: createonlyiffileexists
191+Name: {userstartup}\Collector; Filename: {app}\collector\collector.exe; WorkingDir: {app}\Collector; IconFilename: {app}\collector\collector.exe; Components: Collector; Tasks: startupcollectoricon; IconIndex: 0; Flags: createonlyiffileexists
192+Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\cyglaunch; Filename: {app}\cyglaunch.exe; WorkingDir: {app}; IconFilename: {app}\cyglaunch.exe; Components: cygterm; Tasks: quickcyglaunch; IconIndex: 0; Flags: createonlyiffileexists
193+
194+[Registry]
195+; Cygterm Here
196+Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm; ValueType: string; ValueData: Cy&gterm Here; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: cygterm; Tasks: cygtermhere
197+Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -v CHERE_INVOKING=y -d ""\""%L\"""""; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: cygterm; Tasks: cygtermhere
198+Root: HKCR; Subkey: Folder\shell\cygterm; ValueType: string; ValueData: Cy&gterm Here; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: cygterm; Tasks: cygtermhere
199+Root: HKCR; Subkey: Folder\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -v CHERE_INVOKING=y -d ""\""%L\"""""; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: cygterm; Tasks: cygtermhere
200+; Cygterm Here from folder Background
201+; MinVersion 5.00.0000 = not Win9x, 6.0.6000 = Vista or later
202+Root: HKCU; Subkey: Software\Classes\Directory\Background\shell\cygterm; ValueType: string; ValueData: Cy&gterm Here; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere; MinVersion: 5.00.0000,6.0.6000
203+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; MinVersion: 5.00.0000,6.0.6000
204+Root: HKCU; Subkey: Software\Classes\LibraryFolder\Background\shell\cygterm; ValueType: string; ValueData: Cy&gterm Here; Flags: uninsdeletekey; Components: cygterm; Tasks: cygtermhere; MinVersion: 5.00.0000,6.0.6000
205+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; MinVersion: 5.00.0000,6.0.6000
206+; Associate with .TTL
207+Root: HKCU; Subkey: Software\Classes\.ttl; ValueType: string; ValueData: TeraTerm.MacroFile; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
208+Root: HKCU; Subkey: Software\Classes\TeraTerm.MacroFile; ValueType: string; ValueData: Tera Term Macro File; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
209+Root: HKCU; Subkey: Software\Classes\TeraTerm.MacroFile\DefaultIcon; ValueType: string; ValueData: {app}\ttpmacro.exe,0; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
210+Root: HKCU; Subkey: Software\Classes\TeraTerm.MacroFile\shell\open\command; ValueType: string; ValueData: """{app}\ttpmacro.exe"" ""%1"""; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
211+Root: HKCR; Subkey: .ttl; ValueType: string; ValueData: TeraTerm.MacroFile; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
212+Root: HKCR; Subkey: TeraTerm.MacroFile; ValueType: string; ValueData: Tera Term Macro File; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
213+Root: HKCR; Subkey: TeraTerm.MacroFile\DefaultIcon; ValueType: string; ValueData: {app}\ttpmacro.exe,0; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
214+Root: HKCR; Subkey: TeraTerm.MacroFile\shell\open\command; ValueType: string; ValueData: """{app}\ttpmacro.exe"" ""%1"""; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
215+; Associate with telnet://
216+Root: HKCU; Subkey: Software\Classes\telnet\shell; ValueType: string; ValueData: Open with Tera Term; Flags: uninsclearvalue; Check: isWin2kOrLater; Components: TeraTerm; Tasks: telnetassoc
217+Root: HKCU; Subkey: Software\Classes\telnet\shell\Open with Tera Term\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" /T=1 /nossh %1"; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: telnetassoc
218+Root: HKCR; Subkey: telnet\shell; ValueType: string; ValueData: Open with Tera Term; Flags: uninsclearvalue; Check: not isWin2kOrLater; Components: TeraTerm; Tasks: telnetassoc
219+Root: HKCR; Subkey: telnet\shell\Open with Tera Term\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" /T=1 /nossh %1"; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TeraTerm; Tasks: telnetassoc
220+; Associate with ssh://
221+Root: HKCU; Subkey: Software\Classes\ssh; ValueType: string; ValueData: URL: SSH Protocol; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
222+Root: HKCU; Subkey: Software\Classes\ssh; ValueName: URL Protocol; ValueType: string; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
223+Root: HKCU; Subkey: Software\Classes\ssh; ValueName: EditFlags; ValueType: dword; ValueData: 2; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
224+Root: HKCU; Subkey: Software\Classes\ssh\DefaultIcon; ValueType: string; ValueData: """{app}\ttxssh.dll"",0"; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
225+Root: HKCU; Subkey: Software\Classes\ssh\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" %1"; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
226+Root: HKCR; Subkey: ssh; ValueType: string; ValueData: URL: SSH Protocol; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
227+Root: HKCR; Subkey: ssh; ValueName: URL Protocol; ValueType: string; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
228+Root: HKCR; Subkey: ssh; ValueName: EditFlags; ValueType: dword; ValueData: 2; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
229+Root: HKCR; Subkey: ssh\DefaultIcon; ValueType: string; ValueData: """{app}\ttxssh.dll"",0"; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
230+Root: HKCR; Subkey: ssh\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" %1"; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
231+; Associate with slogin://
232+Root: HKCU; Subkey: Software\Classes\slogin; ValueType: string; ValueData: URL: slogin Protocol; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
233+Root: HKCU; Subkey: Software\Classes\slogin; ValueName: URL Protocol; ValueType: string; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
234+Root: HKCU; Subkey: Software\Classes\slogin; ValueName: EditFlags; ValueType: dword; ValueData: 2; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
235+Root: HKCU; Subkey: Software\Classes\slogin\DefaultIcon; ValueType: string; ValueData: """{app}\ttxssh.dll"",0"; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
236+Root: HKCU; Subkey: Software\Classes\slogin\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" %1"; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
237+Root: HKCR; Subkey: slogin; ValueType: string; ValueData: URL: slogin Protocol; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
238+Root: HKCR; Subkey: slogin; ValueName: URL Protocol; ValueType: string; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
239+Root: HKCR; Subkey: slogin; ValueName: EditFlags; ValueType: dword; ValueData: 2; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
240+Root: HKCR; Subkey: slogin\DefaultIcon; ValueType: string; ValueData: """{app}\ttxssh.dll"",0"; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
241+Root: HKCR; Subkey: slogin\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" %1"; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: TTSSH; Tasks: sshassoc
242+; Associate with .TTY
243+Root: HKCU; Subkey: Software\Classes\.tty; ValueType: string; ValueData: TTYRecordFile; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc
244+Root: HKCU; Subkey: Software\Classes\TTYRecordFile; ValueType: string; ValueData: TTY Record File; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc
245+Root: HKCU; Subkey: Software\Classes\TTYRecordFile\DefaultIcon; ValueType: string; ValueData: {app}\ttermpro.exe,0; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc
246+Root: HKCU; Subkey: Software\Classes\TTYRecordFile\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" /R=""%1"" /TTYPLAY"; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc
247+Root: HKCR; Subkey: .tty; ValueType: string; ValueData: TTYRecordFile; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc
248+Root: HKCR; Subkey: TTYRecordFile; ValueType: string; ValueData: TTY Record File; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc
249+Root: HKCR; Subkey: TTYRecordFile\DefaultIcon; ValueType: string; ValueData: {app}\ttermpro.exe,0; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc
250+Root: HKCR; Subkey: TTYRecordFile\shell\open\command; ValueType: string; ValueData: """{app}\ttermpro.exe"" /R=""%1"" /TTYPLAY"; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: Additional_Plugins/TTXttyrec; Tasks: ttyplayassoc
251+
252+[Tasks]
253+Name: desktopicon; Description: {cm:task_desktopicon}; Components: TeraTerm
254+Name: quicklaunchicon; Description: {cm:task_quicklaunchicon}; Components: TeraTerm
255+Name: startupttmenuicon; Description: {cm:task_startupttmenuicon}; Components: TeraTerm_Menu
256+Name: startupcollectoricon; Description: {cm:task_startupcollectoricon}; Components: Collector
257+Name: cygtermhere; Description: {cm:task_cygtermhere}; Components: cygterm; Flags: unchecked
258+Name: quickcyglaunch; Description: {cm:task_quickcyglaunch}; Components: cygterm; Flags: unchecked
259+Name: macroassoc; Description: {cm:task_macroassoc}; Components: TeraTerm; Flags: unchecked
260+Name: telnetassoc; Description: {cm:task_telnetassoc}; Components: TeraTerm; Flags: unchecked
261+Name: sshassoc; Description: {cm:task_sshassoc}; Components: TTSSH; Flags: unchecked
262+Name: ttyplayassoc; Description: {cm:task_ttyplayassoc}; Components: Additional_Plugins/TTXttyrec; Flags: unchecked
263+
264+[Run]
265+Filename: {app}\ttermpro.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_teraterm}; Components: TeraTerm
266+Filename: {tmp}\Setup_LogMeTT_2_12_1.exe; Flags: skipifsilent runasoriginaluser; Components: LogMeTT
267+Filename: {tmp}\Setup_LogMeTT_2_12_1.exe; Parameters: /SILENT; Flags: skipifnotsilent runasoriginaluser; Components: LogMeTT
268+Filename: {tmp}\Setup_TTLEditor_1_5_1.exe; Flags: skipifsilent runasoriginaluser; Components: TTLEdit
269+Filename: {tmp}\Setup_TTLEditor_1_5_1.exe; Parameters: /SILENT; Flags: skipifnotsilent runasoriginaluser; Components: TTLEdit
270+Filename: {app}\ttpmenu.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_ttmenu}; Components: TeraTerm_Menu
271+Filename: {app}\Collector\Collector.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_collector}; Components: Collector
272+
273+[CustomMessages]
274+en.task_desktopicon=Create Tera Term shortcut to &Desktop
275+en.task_quicklaunchicon=Create Tera Term shortcut to &Quick Launch
276+en.task_startupttmenuicon=Create TeraTerm &Menu shortcut to Startup
277+en.task_startupcollectoricon=Create &Collector shortcut to Startup
278+en.task_cygtermhere=Add "Cy&gterm Here" to Context menu
279+en.task_quickcyglaunch=Create cyg&launch shortcut to Quick Launch
280+en.task_macroassoc=Associate .&ttl file to ttpmacro.exe
281+en.task_telnetassoc=Associate t&elnet protocol to ttermpro.exe
282+en.task_sshassoc=Associate &ssh protocol to ttermpro.exe
283+en.task_ttyplayassoc=Associate .tty file to tterm&pro.exe
284+ja.task_desktopicon=デスクトップに Tera Term のショートカットを作る(&D)
285+ja.task_quicklaunchicon=クイック起動に Tera Term のショートカットを作る(&Q)
286+ja.task_startupttmenuicon=スタートアップに TeraTerm &Menu のショートカットを作る
287+ja.task_startupcollectoricon=スタートアップに &Collector のショートカットを作る
288+ja.task_cygtermhere=コンテキストメニューに "Cy&gterm Here" を追加する
289+ja.task_quickcyglaunch=クイック起動に cyg&launch のショートカットを作る
290+ja.task_macroassoc=.&ttl ファイルを ttpmacro.exe に関連付ける
291+ja.task_telnetassoc=t&elnet プロトコルを ttermpro.exe に関連付ける
292+ja.task_sshassoc=&ssh プロトコルを ttermpro.exe に関連付ける
293+ja.task_ttyplayassoc=.tty ファイルを tterm&pro.exe に関連付ける
294+en.type_standard=Standard installation
295+en.type_full=Full installation
296+en.type_compact=Compact installation
297+en.type_custom=Custom installation
298+ja.type_standard=標準インストール
299+ja.type_full=フルインストール
300+ja.type_compact=コンパクトインストール
301+ja.type_custom=カスタムインストール
302+en.launch_teraterm=Launch &Tera Term
303+en.launch_ttmenu=Launch TeraTerm &Menu
304+en.launch_collector=Launch &Collector
305+ja.launch_teraterm=今すぐ &Tera Term を実行する
306+ja.launch_ttmenu=今すぐ TeraTerm &Menu を実行する
307+ja.launch_collector=今すぐ &Collector を実行する
308+en.msg_language_caption=Select Language
309+en.msg_language_description=Which language shoud be used?
310+en.msg_language_subcaption=Select the language of application's menu and dialog, then click Next.
311+en.msg_language_none=&English
312+en.msg_language_japanese=&Japanese
313+en.msg_language_german=&German
314+en.msg_language_french=&French
315+en.msg_language_russian=&Russian
316+en.msg_language_korean=&Korean
317+en.msg_language_chinese=&Chinese(Simplified)
318+en.msg_language_tchinese=Chinese(&Traditional)
319+ja.msg_language_caption=言語の選択
320+ja.msg_language_description=ユーザーインターフェースの言語を選択してください。
321+ja.msg_language_subcaption=アプリケーションのメニューやダイアログ等の表示言語を選択して、「次へ」をクリックしてください。
322+ja.msg_language_none=英語(&E)
323+ja.msg_language_japanese=日本語(&J)
324+ja.msg_language_german=ドイツ語(&G)
325+ja.msg_language_french=フランス語(&F)
326+ja.msg_language_russian=ロシア語(&R)
327+ja.msg_language_korean=韓国語(&K)
328+ja.msg_language_chinese=簡体字中国語(&C)
329+ja.msg_language_tchinese=繁体字中国語(&T)
330+en.msg_del_confirm=Are you sure that you want to delete %s ?
331+ja.msg_del_confirm=%s を削除しますか?
332+en.msg_uninstall_confirm=It seems a former version is installed. You are recommended to uninstall it previously. Do you uninstall former version ?
333+ja.msg_uninstall_confirm=以前のバージョンがインストールされているようです。先にアンインストールすることをお勧めします。アンインストールしますか?
334+en.comp_TTX=Additional Plugins
335+ja.comp_TTX=追加プラグイン
336+en.comp_TTXResizeMenu=VT-Window size can be changed from preset
337+ja.comp_TTXResizeMenu=VTウィンドウのサイズをプリセット値の中から変更できるようにする
338+en.comp_TTXttyrec=ttyrec format record data can be recorded or playback
339+ja.comp_TTXttyrec=ttyrec形式の録画データを記録/再生できるようにする
340+en.comp_TTXKanjiMenu=Changes Japanese Kanji Code from VT-Window menu
341+ja.comp_TTXKanjiMenu=日本語の漢字コードをVTウィンドウのメニューから設定できるようにする
342+en.comp_TTXKcodeChange=Change Japanese Kanji code by remote sequence
343+ja.comp_TTXKcodeChange=リモートからのシーケンスで日本語の漢字コードを変更する
344+en.comp_TTXViewMode=View-only mode can be used
345+ja.comp_TTXViewMode=表示専用モードにすることができる
346+en.comp_TTXAlwaysOnTop=Always On Top can be used
347+ja.comp_TTXAlwaysOnTop=常に最前面に表示できるようにする
348+en.comp_TTXRecurringCommand=Recurring Command can be used
349+ja.comp_TTXRecurringCommand=定期的に文字列を送信する
350+en.comp_installer=Other installer is started
351+ja.comp_installer=インストーラが起動します
352+en.msg_AppRunningError=Setup has detected that %s is currently running.%n%nPlease close all instances of it now, then click Next to continue.
353+ja.msg_AppRunningError=セットアップは実行中の %s を検出しました。%n%n開いているアプリケーションをすべて閉じてから「次へ」をクリックしてください。
354+
355+[Code]
356+const
357+ SHCNF_IDLIST = $0000;
358+ SHCNE_ASSOCCHANGED = $08000000;
359+ IMAGE_FILE_MACHINE_UNKNOWN = $0000;
360+ IMAGE_FILE_MACHINE_I386 = $014c;
361+ IMAGE_FILE_MACHINE_AMD64 = $8664;
362+
363+procedure SHChangeNotify(wEventId, uFlags, dwItem1, dwItem2: Integer);
364+external 'SHChangeNotify@shell32.dll stdcall';
365+
366+function FindCygwinPath(CygwinDirectory, CygwinDir: AnsiString; Dirlen: Cardinal): Integer;
367+external 'FindCygwinPath@files:cygtool.dll stdcall setuponly';
368+
369+function PortableExecutableMachine(CygwinDir: AnsiString): Integer;
370+external 'PortableExecutableMachine@files:cygtool.dll stdcall setuponly';
371+
372+var
373+ UILangFilePage: TInputOptionWizardPage;
374+
375+
376+// It is different from x64
377+function isIA64 : Boolean;
378+begin
379+ if ProcessorArchitecture = paIA64 then
380+ Result := True
381+ else
382+ Result := False;
383+end;
384+
385+// Windows 2000 or later
386+function isWin2kOrLater : Boolean;
387+var
388+ Version: TWindowsVersion;
389+begin;
390+ GetWindowsVersionEx(Version);
391+ if Version.Major >= 5 then
392+ Result := True
393+ else
394+ Result := False;
395+end;
396+
397+// Window 9x or NT 4.0 or (Admins or PowerUsers)
398+function isAbleToInstallFont : Boolean;
399+begin;
400+ if not UsingWinNT() then begin
401+ Result := True;
402+ end else begin
403+ if isWin2kOrLater() then begin
404+ if IsAdminLoggedOn() or IsPowerUserLoggedOn() then begin
405+ Result := True;
406+ end else begin
407+ Result := False
408+ end;
409+ end else begin
410+ Result := True;
411+ end;
412+ end;
413+end;
414+
415+{
416+// If value is not found in INI, returns ""
417+function GetIniString2(Section:String; Key:String; Filename:String) : String;
418+var
419+ Default1: String;
420+ Default2: String;
421+ Value1: String;
422+ Value2: String;
423+begin
424+ Default1 := 'on';
425+ Default2 := 'off';
426+ Value1 := GetIniString(Section, Key, Default1, Filename);
427+ Value2 := GetIniString(Section, Key, Default2, Filename);
428+
429+ if Value1 <> Value2 then
430+ // no value in INI
431+ Result := ''
432+ else
433+ // value in INI
434+ Result := Value1
435+end;
436+}
437+
438+function CheckFileUsing(Filename:String) : integer;
439+var
440+ TmpFileName : String;
441+begin
442+ if FileExists(FileName) then
443+ begin
444+ TmpFileName := FileName + '.' + GetDateTimeString('yyyymmddhhnnss', #0, #0); // Tmp file ends with timestamp
445+ if FileCopy(FileName, TmpFileName, True) then
446+ if DeleteFile(FileName) then
447+ if RenameFile(TmpFileName, FileName) then
448+ Result := 0
449+ else
450+ Result := -1 // permission?
451+ else
452+ begin
453+ Result := 1; // failed to delete
454+ DeleteFile(TmpFileName);
455+ end
456+ else
457+ Result := -1 // permission?
458+ end
459+ else
460+ Result := 0;
461+end;
462+
463+function CheckAppsUsing() : string;
464+var
465+ FileDir : String;
466+ FileName : array[0..6] of String;
467+ FileDesc : array[0..6] of String;
468+ i : integer;
469+begin
470+ FileDir := ExpandConstant('{app}');
471+ FileName[0] := FileDir + '\ttermpro.exe';
472+ FileName[1] := FileDir + '\ttpmacro.exe';
473+ FileName[2] := FileDir + '\keycode.exe';
474+ FileName[3] := FileDir + '\ttpmenu.exe';
475+ FileName[4] := FileDir + '\cygterm.exe';
476+ FileName[5] := FileDir + '\Collector.exe';
477+ FileName[6] := FileDir + '\Collector_org.exe';
478+ FileDesc[0] := 'Tera Term';
479+ FileDesc[1] := 'Tera Term Macro';
480+ FileDesc[2] := 'Keycode';
481+ FileDesc[3] := 'TeraTerm Menu';
482+ FileDesc[4] := 'CygTerm+';
483+ FileDesc[5] := 'Collector';
484+ FileDesc[6] := 'Collector';
485+
486+ for i := 0 to 6 do
487+ begin
488+ case CheckFileUsing(FileName[i]) of
489+ 1:
490+ // Failed to delete. In use.
491+ begin
492+ if Length(Result) > 0 then
493+ Result := Result + ', ' + FileDesc[i]
494+ else
495+ Result := FileDesc[i]
496+ end;
497+ else
498+ // -1: Failed to copy/rename
499+ // 0: OK
500+ // NOP
501+ end;
502+ end;
503+
504+end;
505+
506+function GetDefaultIniFilename : String;
507+begin
508+ Result := ExpandConstant('{app}') + '\TERATERM.INI';
509+end;
510+
511+procedure SetIniFile(iniFile: String);
512+var
513+ Language : String;
514+ Locale : String;
515+ CodePage : integer;
516+ VTFont : String;
517+ TEKFont : String;
518+ FileDir : String;
519+ TCPPort : integer;
520+ ViewlogEditor : String;
521+ CipherOrder : String;
522+
523+begin
524+ Language := GetIniString('Tera Term', 'Language', '', iniFile);
525+ Locale := GetIniString('Tera Term', 'Locale', '', iniFile);
526+ CodePage := GetIniInt('Tera Term', 'CodePage', 0, 0, 0, iniFile);
527+ VTFont := GetIniString('Tera Term', 'VTFont', '', iniFile);
528+ TEKFont := GetIniString('Tera Term', 'TEKFont', '', iniFile);
529+ FileDir := GetIniString('Tera Term', 'FileDir', '', iniFile);
530+ TCPPort := GetIniInt('Tera Term', 'TCPPort', 0, 0, 65535, iniFile)
531+ ViewlogEditor := GetIniString('Tera Term', 'ViewlogEditor', '', iniFile);
532+ CipherOrder := GetIniString('TTSSH', 'CipherOrder', '', iniFile);
533+
534+ case GetUILanguage and $3FF of
535+ $04: // Chinese
536+ begin
537+
538+ case GetUILanguage of
539+ $c04, $1404, $404: // Hong Kong, Macao, Taiwan
540+ begin
541+ if Length(Locale) = 0 then
542+ SetIniString('Tera Term', 'Locale', 'cht', iniFile);
543+ if CodePage = 0 then
544+ SetIniInt('Tera Term', 'CodePage', 950, iniFile);
545+ end;
546+ else
547+ begin
548+ if Length(Locale) = 0 then
549+ SetIniString('Tera Term', 'Locale', 'chs', iniFile);
550+ if CodePage = 0 then
551+ SetIniInt('Tera Term', 'CodePage', 936, iniFile);
552+ end;
553+ end;
554+
555+ if Length(Language) = 0 then
556+ SetIniString('Tera Term', 'Language', 'UTF-8', iniFile);
557+ if Length(VTFont) = 0 then
558+ SetIniString('Tera Term', 'VTFont', 'Terminal,0,-12,255', iniFile);
559+ if Length(TEKFont) = 0 then
560+ SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,255', iniFile);
561+ end;
562+ $11: // Japanese
563+ begin
564+ if Length(Language) = 0 then
565+ SetIniString('Tera Term', 'Language', 'Japanese', iniFile);
566+ if Length(Locale) = 0 then
567+ SetIniString('Tera Term', 'Locale', 'japanese', iniFile);
568+ if CodePage = 0 then
569+ SetIniInt('Tera Term', 'CodePage', 932, iniFile);
570+ if Length(VTFont) = 0 then
571+ SetIniString('Tera Term', 'VTFont', 'Terminal,0,-19,128', iniFile);
572+ if Length(TEKFont) = 0 then
573+ SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,128', iniFile);
574+ end;
575+ $12: // Korean
576+ begin
577+ if Length(Language) = 0 then
578+ SetIniString('Tera Term', 'Language', 'Korean', iniFile);
579+ if Length(Locale) = 0 then
580+ SetIniString('Tera Term', 'Locale', 'korean', iniFile);
581+ if CodePage = 0 then
582+ SetIniInt('Tera Term', 'CodePage', 949, iniFile);
583+ if Length(VTFont) = 0 then
584+ SetIniString('Tera Term', 'VTFont', 'Terminal,0,-12,255', iniFile);
585+ if Length(TEKFont) = 0 then
586+ SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,255', iniFile);
587+ end;
588+ $19: // Russian
589+ begin
590+ if Length(Language) = 0 then
591+ SetIniString('Tera Term', 'Language', 'Russian', iniFile);
592+ if Length(Locale) = 0 then
593+ SetIniString('Tera Term', 'Locale', 'russian', iniFile);
594+ if CodePage = 0 then
595+ SetIniInt('Tera Term', 'CodePage', 1251, iniFile);
596+ if Length(VTFont) = 0 then
597+ SetIniString('Tera Term', 'VTFont', 'Terminal,0,-12,255', iniFile);
598+ if Length(TEKFont) = 0 then
599+ SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,255', iniFile);
600+ end;
601+ else // Other
602+ begin
603+
604+ if GetUILanguage = $409 then begin // en-US
605+
606+ if Length(Language) = 0 then
607+ SetIniString('Tera Term', 'Language', 'UTF-8', iniFile);
608+ if Length(Locale) = 0 then
609+ SetIniString('Tera Term', 'Locale', 'american', iniFile);
610+ if CodePage = 0 then
611+ SetIniInt('Tera Term', 'CodePage', 65001, iniFile);
612+
613+ end else begin // Other
614+
615+ if Length(Language) = 0 then
616+ SetIniString('Tera Term', 'Language', 'English', iniFile);
617+ if Length(Locale) = 0 then
618+ SetIniString('Tera Term', 'Locale', 'english', iniFile);
619+ if CodePage = 0 then
620+ SetIniInt('Tera Term', 'CodePage', 1252, iniFile);
621+
622+ end;
623+
624+ if Length(VTFont) = 0 then
625+ SetIniString('Tera Term', 'VTFont', 'Terminal,0,-12,255', iniFile);
626+ if Length(TEKFont) = 0 then
627+ SetIniString('Tera Term', 'TEKFont', 'Terminal,0,-8,255', iniFile);
628+ end;
629+ end;
630+
631+ case UILangFilePage.SelectedValueIndex of
632+ 1:
633+ SetIniString('Tera Term', 'UILanguageFile', 'lang\Japanese.lng', iniFile);
634+ 2:
635+ SetIniString('Tera Term', 'UILanguageFile', 'lang\German.lng', iniFile);
636+ 3:
637+ SetIniString('Tera Term', 'UILanguageFile', 'lang\French.lng', iniFile);
638+ 4:
639+ SetIniString('Tera Term', 'UILanguageFile', 'lang\Russian.lng', iniFile);
640+ 5:
641+ SetIniString('Tera Term', 'UILanguageFile', 'lang\Korean.lng', iniFile);
642+ 6:
643+ SetIniString('Tera Term', 'UILanguageFile', 'lang\Simplified Chinese.lng', iniFile);
644+ 7:
645+ SetIniString('Tera Term', 'UILanguageFile', 'lang\Traditional Chinese.lng', iniFile);
646+ else
647+ SetIniString('Tera Term', 'UILanguageFile', 'lang\Default.lng', iniFile);
648+ end;
649+
650+ if Length(FileDir) = 0 then begin
651+ FileDir := ExpandConstant('{app}');
652+ SetIniString('Tera Term', 'FileDir', FileDir, iniFile);
653+ end;
654+
655+ if TCPPort = 0 then begin
656+ if IsComponentSelected('TTSSH') then
657+ SetIniInt('Tera Term', 'TCPPort', 22, iniFile)
658+ else
659+ SetIniInt('Tera Term', 'TCPPort', 23, iniFile);
660+ end;
661+
662+ if ViewlogEditor = 'notepad.exe' then begin
663+ ViewlogEditor := ExpandConstant('{win}') + '\' + 'notepad.exe';
664+ SetIniString('Tera Term', 'ViewlogEditor', ViewlogEditor, iniFile);
665+ end;
666+
667+ if IsComponentSelected('TTSSH') then
668+ begin
669+ CipherOrder := GetIniString('TTSSH', 'CipherOrder', '', iniFile);
670+ if (CompareStr(CipherOrder, 'K>H:J=G9I<F8C7D;A@?EB3062') = 0) or
671+ (CompareStr(CipherOrder, '>:=9<8C7D;A@?EB3062') = 0) or
672+ (CompareStr(CipherOrder, '>:=9<87;A@?B3026') = 0) or
673+ (CompareStr(CipherOrder, '>:=9<87;A@?3026') = 0) or
674+ (CompareStr(CipherOrder, '>:=9<87;?3026') = 0) or
675+ (CompareStr(CipherOrder, '<8=9>:7;3026') = 0) or
676+ (CompareStr(CipherOrder, '87;9:<=>3026') = 0) or
677+ (CompareStr(CipherOrder, '87;9:3026') = 0) or
678+ (CompareStr(CipherOrder, '873026') = 0) then
679+ SetIniString('TTSSH', 'CipherOrder', 'K>H:J=G9I<F8C7D;EB30A@?62', iniFile)
680+ end;
681+
682+end;
683+
684+procedure InitializeWizard;
685+var
686+ UILangFilePageCaption : String;
687+ UILangFilePageDescription : String;
688+ UILangFilePageSubCaption : String;
689+ UILangFilePageNone : String;
690+ UILangFilePageJapanese : String;
691+ UILangFilePageGerman : String;
692+ UILangFilePageFrench : String;
693+ UILangFilePageRussian : String;
694+ UILangFilePageKorean : String;
695+ UILangFilePageChinese : String;
696+ UILangFilePageTChinese : String;
697+begin
698+ UILangFilePageCaption := CustomMessage('msg_language_caption');
699+ UILangFilePageDescription := CustomMessage('msg_language_description');
700+ UILangFilePageSubCaption := CustomMessage('msg_language_subcaption');
701+ UILangFilePageNone := CustomMessage('msg_language_none');
702+ UILangFilePageJapanese := CustomMessage('msg_language_japanese');
703+ UILangFilePageGerman := CustomMessage('msg_language_german');
704+ UILangFilePageFrench := CustomMessage('msg_language_french');
705+ UILangFilePageRussian := CustomMessage('msg_language_russian');
706+ UILangFilePageKorean := CustomMessage('msg_language_korean');
707+ UILangFilePageChinese := CustomMessage('msg_language_chinese');
708+ UILangFilePageTChinese := CustomMessage('msg_language_tchinese');
709+
710+ UILangFilePage := CreateInputOptionPage(wpSelectComponents,
711+ UILangFilePageCaption, UILangFilePageDescription,
712+ UILangFilePageSubCaption, True, False);
713+ UILangFilePage.Add(UILangFilePageNone);
714+ UILangFilePage.Add(UILangFilePageJapanese);
715+ UILangFilePage.Add(UILangFilePageGerman);
716+ UILangFilePage.Add(UILangFilePageFrench);
717+ UILangFilePage.Add(UILangFilePageRussian);
718+ UILangFilePage.Add(UILangFilePageKorean);
719+ UILangFilePage.Add(UILangFilePageChinese);
720+ UILangFilePage.Add(UILangFilePageTChinese);
721+ case ActiveLanguage of
722+ 'ja':
723+ UILangFilePage.SelectedValueIndex := 1;
724+ // 他の言語は最新版に追従していないので、日本語だけ特別扱い
725+ else
726+ UILangFilePage.SelectedValueIndex := 0;
727+ end;
728+end;
729+
730+function NextButtonClick(CurPageID: Integer): Boolean;
731+var
732+ uninstaller : String;
733+ uninstaller2 : String;
734+ ResultCode : Integer;
735+ iniFile : String;
736+ ErrMsg : String;
737+begin
738+ Result := True;
739+
740+ case CurPageID of
741+
742+ wpWelcome:
743+ begin
744+
745+ if RegQueryStringValue(HKEY_LOCAL_MACHINE,
746+ 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\UTF-8 TeraTerm Pro with TTSSH2_is1',
747+ 'UninstallString', uninstaller) then
748+ begin
749+ // UTF-8 TeraTerm Pro with TTSSH2 のアンインストーラ文字列を発見した
750+ if not RegKeyExists(HKEY_LOCAL_MACHINE,
751+ 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Tera Term_is1') then
752+ begin
753+ // Tera Term のインストールエントリが見つからない(共存していない)
754+ if MsgBox(CustomMessage('msg_uninstall_confirm'), mbInformation, MB_YESNO) = IDYES then
755+ begin
756+ // ユーザがアンインストールを選択した
757+
758+ // 両端の " を削る
759+ uninstaller2 := Copy(uninstaller, 2, Length(uninstaller) - 2);
760+
761+ if not Exec(uninstaller2, '', '', SW_SHOW,
762+ ewWaitUntilTerminated, ResultCode) then
763+ begin
764+ // 実行に失敗
765+ MsgBox(SysErrorMessage(ResultCode), mbError, MB_OK);
766+ end;
767+ end;
768+ end;
769+ end;
770+
771+ end;
772+
773+ wpSelectDir:
774+ begin
775+
776+ ErrMsg := CheckAppsUsing();
777+ if Length(ErrMsg) > 0 then
778+ begin
779+ MsgBox(Format(CustomMessage('msg_AppRunningError'), [ErrMsg]), mbError, MB_OK);
780+ Result := False;
781+ end
782+ else
783+ // -1: goto next. Turn over to Inno Setup.
784+ // 0: goto next. No problem.
785+ // NOP
786+ end;
787+
788+ wpSelectComponents:
789+ begin
790+
791+ if FileExists(GetDefaultIniFileName()) then
792+ begin
793+ iniFile := Lowercase(GetIniString('Tera Term', 'UILanguageFile', '', GetDefaultIniFilename()));
794+ if iniFile = 'lang\japanese.lng' then
795+ UILangFilePage.SelectedValueIndex := 1
796+ else if iniFile = 'lang\german.lng' then
797+ UILangFilePage.SelectedValueIndex := 2
798+ else if iniFile = 'lang\french.lng' then
799+ UILangFilePage.SelectedValueIndex := 3
800+ else if iniFile = 'lang\russian.lng' then
801+ UILangFilePage.SelectedValueIndex := 4
802+ else if iniFile = 'lang\korean.lng' then
803+ UILangFilePage.SelectedValueIndex := 5
804+ else if iniFile = 'lang\simplified chinese.lng' then
805+ UILangFilePage.SelectedValueIndex := 6
806+ else if iniFile = 'lang\traditional chinese.lng' then
807+ UILangFilePage.SelectedValueIndex := 7
808+ else
809+ UILangFilePage.SelectedValueIndex := 0;
810+ end;
811+
812+ end;
813+ end;
814+end;
815+
816+procedure CurStepChanged(CurStep: TSetupStep);
817+var
818+ iniFile : String;
819+ CygDir : String;
820+ CygPath : String;
821+ CygDll : String;
822+ Cygterm : String;
823+ Res : Integer;
824+ Machine : Integer;
825+begin
826+ case CurStep of
827+ ssPostInstall:
828+ begin
829+ iniFile := GetDefaultIniFilename();
830+ SetIniFile(iniFile);
831+
832+ if IsComponentSelected('cygterm') then
833+ begin;
834+ Cygterm := ExpandConstant('{app}') + '\cygterm.exe';
835+ if not FileExists(Cygterm) then
836+ begin;
837+ CygDir := GetIniString('Tera Term', 'CygwinDirectory', 'C:\cygwin', iniFile);
838+ SetLength(CygPath, 256);
839+ Res := FindCygwinPath(CygDir, CygPath, 256);
840+ If Res = 1 then
841+ begin;
842+ CygDll := Copy(CygPath, 1, Pos(#0, CygPath) - 1) + '\bin\cygwin1.dll';
843+ Machine := PortableExecutableMachine(CygDll);
844+ if Machine = IMAGE_FILE_MACHINE_AMD64 then
845+ FileCopy(ExpandConstant('{app}') + '\cygterm+-x86_64\cygterm.exe', Cygterm, True)
846+ else
847+ FileCopy(ExpandConstant('{app}') + '\cygterm+-i686\cygterm.exe', Cygterm, True);
848+ end;
849+ end else begin
850+ Machine := PortableExecutableMachine(Cygterm);
851+ if Machine = IMAGE_FILE_MACHINE_AMD64 then
852+ FileCopy(ExpandConstant('{app}') + '\cygterm+-x86_64\cygterm.exe', Cygterm, False)
853+ else
854+ FileCopy(ExpandConstant('{app}') + '\cygterm+-i686\cygterm.exe', Cygterm, False);
855+ end;
856+ end;
857+
858+ if not IsTaskSelected('cygtermhere') then
859+ begin;
860+ RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\Folder\shell\cygterm');
861+ RegDeleteKeyIncludingSubkeys(HKEY_CLASSES_ROOT, 'Folder\shell\cygterm');
862+ RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\Directory\Background\shell\cygterm');
863+ RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\LibraryFolder\Background\shell\cygterm');
864+ end;
865+
866+ if not IsTaskSelected('macroassoc') then
867+ begin;
868+ RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\.ttl');
869+ RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\TeraTerm.MacroFile');
870+ RegDeleteKeyIncludingSubkeys(HKEY_CLASSES_ROOT, '.ttl');
871+ RegDeleteKeyIncludingSubkeys(HKEY_CLASSES_ROOT, 'TeraTerm.MacroFile');
872+ end;
873+
874+ if not IsTaskSelected('telnetassoc') then
875+ begin;
876+ RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\Classes\telnet\shell\Open with Tera Term');
877+ RegDeleteValue(HKEY_CURRENT_USER, 'Software\Classes\telnet\shell', '');
878+ RegDeleteKeyIncludingSubkeys(HKEY_CLASSES_ROOT, 'telnet\shell\Open with Tera Term');
879+ RegDeleteValue(HKEY_CLASSES_ROOT, 'telnet\shell', '');
880+ end;
881+
882+ SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
883+
884+ end; // ssPostInstall
885+ end; // case CurStep of
886+end; // CurStepChanged
887+
888+procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
889+var
890+ ini : array[0..5] of String;
891+ buf : String;
892+ conf : String;
893+ confmsg : String;
894+ app : String;
895+ i, res : Integer;
896+ silent : Boolean;
897+begin
898+ case CurUninstallStep of
899+ usPostUninstall:
900+ begin
901+ ini[0] := '\TERATERM.INI';
902+ ini[1] := '\KEYBOARD.CNF';
903+ ini[2] := '\lang\Default.lng';
904+ ini[3] := '\ssh_known_hosts';
905+ ini[4] := '\cygterm.cfg';
906+ ini[5] := '\broadcast.log';
907+
908+ conf := CustomMessage('msg_del_confirm');
909+ app := ExpandConstant('{app}');
910+
911+ silent := false;
912+ for i := 0 to ParamCount() do
913+ begin
914+ if (CompareText('/SUPPRESSMSGBOXES', ParamStr(i)) = 0) then
915+ silent := true;
916+ end;
917+
918+ if not silent then begin
919+
920+ // delete config files
921+ for i := 0 to 5 do
922+ begin
923+ buf := app + ini[i];
924+ if FileExists(buf) then begin
925+ confmsg := Format(conf, [buf]);
926+ res := MsgBox(confmsg, mbInformation, MB_YESNO or MB_DEFBUTTON2);
927+ if res = IDYES then
928+ DeleteFile(buf);
929+ end;
930+ end;
931+
932+ // delete registory
933+ if RegKeyExists(HKEY_CURRENT_USER, 'Software\ShinpeiTools\TTermMenu') then begin
934+ confmsg := Format(conf, ['HKEY_CURRENT_USER' + '\Software\ShinpeiTools\TTermMenu']);
935+ res := MsgBox(confmsg, mbInformation, MB_YESNO or MB_DEFBUTTON2);
936+ if res = IDYES then begin
937+ RegDeleteKeyIncludingSubkeys(HKEY_CURRENT_USER, 'Software\ShinpeiTools\TTermMenu');
938+ RegDeleteKeyIfEmpty(HKEY_CURRENT_USER, 'Software\ShinpeiTools');
939+ end;
940+ end;
941+
942+ end;
943+
944+ SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
945+
946+ // directory is deleted only if empty
947+ RemoveDir(app + '\lang');
948+ RemoveDir(app);
949+ end;
950+ end;
951+end;
952+
953+[InstallDelete]
954+Name: {app}\OpenSSH-LICENCE.txt; Type: files
955+Name: {app}\cygterm-README.txt; Type: files
956+Name: {app}\cygterm-README-j.txt; Type: files
957+Name: {app}\keycode.txt; Type: files
958+Name: {app}\keycodej.txt; Type: files
959+Name: {app}\RE.txt; Type: files
960+Name: {app}\RE-ja.txt; Type: files
961+Name: {app}\ssh2_readme.txt; Type: files
962+Name: {app}\ssh2_readme-j.txt; Type: files
963+Name: {app}\utf8_readme.txt; Type: files
964+Name: {app}\utf8_readme-j.txt; Type: files
965+Name: {app}\OpenSSH-LICENSE.txt; Type: files
966+Name: {app}\OpenSSL-LICENSE.txt; Type: files
967+Name: {group}\TeraTerm Document.lnk; Type: files
968+Name: {group}\TeraTerm Document(Japanese).lnk; Type: files
969+Name: {group}\TTSSH Document.lnk; Type: files
970+Name: {group}\TTSSH Document(Japanese).lnk; Type: files
971+Name: {app}\LogMeTT.hlp; Type: files
972+Name: {app}\macro.hlp; Type: files
973+Name: {app}\macroj.hlp; Type: files
974+Name: {app}\ttermp.hlp; Type: files
975+Name: {app}\ttermpj.hlp; Type: files
976+Name: {app}\copyfont.bat; Type: files
977+Name: {app}\copyfont.pif; Type: files
978+Name: {app}\libeay.txt; Type: files
979+Name: {app}\cygterm+-x86_64\cyglaunch.exe; Type: files
980+Name: {app}\ttpdlg.dll; Type: files
981+
982+[UninstallDelete]
983+Name: {app}\cygterm.exe; Type: files
Show on old repository browser