オープンソース・ソフトウェアの開発とダウンロード

Subversion リポジトリの参照

Diff of /trunk/installer/teraterm.iss

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4067 by maya, Tue Aug 31 05:08:41 2010 UTC revision 4603 by maya, Wed Aug 31 12:23:14 2011 UTC
# Line 1  Line 1 
1  #define AppName "Tera Term"  #define AppName "Tera Term"
2  #define AppVer "4.67"  #define AppVer "4.71"
3  ;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');  ;#define snapshot GetDateTimeString('yyyymmdd_hhnnss', '', '');
4    
5  [Setup]  [Setup]
# Line 16  DefaultGroupName={#AppName} Line 16  DefaultGroupName={#AppName}
16  ShowLanguageDialog=yes  ShowLanguageDialog=yes
17  AllowNoIcons=true  AllowNoIcons=true
18  UninstallDisplayIcon={app}\ttermpro.exe  UninstallDisplayIcon={app}\ttermpro.exe
 AppMutex=TeraTermProAppMutex, TeraTermProMacroAppMutex, TeraTermProKeycodeAppMutex, TeraTermMenuAppMutex, CygTermAppMutex  
19  #ifndef snapshot  #ifndef snapshot
20  OutputBaseFilename=teraterm-{#AppVer}  OutputBaseFilename=teraterm-{#AppVer}
21  #else  #else
# Line 64  Source: release\random.ttl; DestDir: {ap Line 63  Source: release\random.ttl; DestDir: {ap
63  Source: release\screencapture.ttl; DestDir: {app}; Components: TeraTerm  Source: release\screencapture.ttl; DestDir: {app}; Components: TeraTerm
64  Source: release\ssh2login.ttl; DestDir: {app}; Components: TeraTerm  Source: release\ssh2login.ttl; DestDir: {app}; Components: TeraTerm
65  Source: release\wait_regex.ttl; DestDir: {app}; Components: TeraTerm  Source: release\wait_regex.ttl; DestDir: {app}; Components: TeraTerm
66    Source: release\lang\Default.lng; DestDir: {app}\lang; Components: TeraTerm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify
67  Source: release\lang\Japanese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly  Source: release\lang\Japanese.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
68  Source: release\lang\German.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly  Source: release\lang\German.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
69  Source: release\lang\French.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly  Source: release\lang\French.lng; DestDir: {app}\lang; Components: TeraTerm; Attribs: readonly; Flags: uninsremovereadonly overwritereadonly
# Line 73  Source: ..\cygterm\cygterm.exe; DestDir: Line 73  Source: ..\cygterm\cygterm.exe; DestDir:
73  Source: ..\cygterm\cygterm.cfg; DestDir: {app}; Components: cygterm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify  Source: ..\cygterm\cygterm.cfg; DestDir: {app}; Components: cygterm; Flags: onlyifdoesntexist uninsneveruninstall; Permissions: authusers-modify
74  Source: ..\cygterm\cyglaunch.exe; DestDir: {app}; Components: cygterm  Source: ..\cygterm\cyglaunch.exe; DestDir: {app}; Components: cygterm
75  Source: ..\cygterm\cygterm+.tar.gz; DestDir: {app}; Components: cygterm  Source: ..\cygterm\cygterm+.tar.gz; DestDir: {app}; Components: cygterm
76  Source: ..\libs\logmett\Setup_LogMeTT_2_9_7.exe; DestDir: {tmp}; Components: LogMeTT; Flags: deleteafterinstall  Source: ..\libs\logmett\Setup_LogMeTT_2_9_9_1.exe; DestDir: {tmp}; Components: LogMeTT; Flags: deleteafterinstall
77  Source: ..\libs\logmett\Setup_TTLEditor_1_2_1.exe; DestDir: {tmp}; Components: TTLEdit; Flags: deleteafterinstall  Source: ..\libs\logmett\Setup_TTLEditor_1_2_1.exe; DestDir: {tmp}; Components: TTLEdit; Flags: deleteafterinstall
78  Source: ..\ttpmenu\Release\ttpmenu.exe; DestDir: {app}; Components: TeraTerm_Menu; Flags: ignoreversion  Source: ..\ttpmenu\Release\ttpmenu.exe; DestDir: {app}; Components: TeraTerm_Menu; Flags: ignoreversion
79  Source: release\ttmenu_readme-j.txt; DestDir: {app}; Components: TeraTerm_Menu  Source: release\ttmenu_readme-j.txt; DestDir: {app}; Components: TeraTerm_Menu
# Line 144  Name: {userappdata}\Microsoft\Internet E Line 144  Name: {userappdata}\Microsoft\Internet E
144  [Registry]  [Registry]
145  ; Cygterm Here  ; Cygterm Here
146  Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm; ValueType: string; ValueData: Cy&gterm Here; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: cygterm; Tasks: cygtermhere  Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm; ValueType: string; ValueData: Cy&gterm Here; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: cygterm; Tasks: cygtermhere
147  Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -nols -d \""%L\"""; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: cygterm; Tasks: cygtermhere  Root: HKCU; Subkey: Software\Classes\Folder\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -nols -d ""\""%L\"""""; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: cygterm; Tasks: cygtermhere
148  Root: HKCR; Subkey: Folder\shell\cygterm; ValueType: string; ValueData: Cy&gterm Here; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: cygterm; Tasks: cygtermhere  Root: HKCR; Subkey: Folder\shell\cygterm; ValueType: string; ValueData: Cy&gterm Here; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: cygterm; Tasks: cygtermhere
149  Root: HKCR; Subkey: Folder\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -nols -d \""%L\"""; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: cygterm; Tasks: cygtermhere  Root: HKCR; Subkey: Folder\shell\cygterm\command; ValueType: string; ValueData: """{app}\cyglaunch.exe"" -nocd -nols -d ""\""%L\"""""; Flags: uninsdeletekey; Check: not isWin2kOrLater; Components: cygterm; Tasks: cygtermhere
150  ; Associate with .TTL  ; Associate with .TTL
151  Root: HKCU; Subkey: Software\Classes\.ttl; ValueType: string; ValueData: TeraTerm.MacroFile; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc  Root: HKCU; Subkey: Software\Classes\.ttl; ValueType: string; ValueData: TeraTerm.MacroFile; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
152  Root: HKCU; Subkey: Software\Classes\TeraTerm.MacroFile; ValueType: string; ValueData: Tera Term Macro File; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc  Root: HKCU; Subkey: Software\Classes\TeraTerm.MacroFile; ValueType: string; ValueData: Tera Term Macro File; Flags: uninsdeletekey; Check: isWin2kOrLater; Components: TeraTerm; Tasks: macroassoc
# Line 207  Name: ttyplayassoc; Description: {cm:tas Line 207  Name: ttyplayassoc; Description: {cm:tas
207    
208  [Run]  [Run]
209  Filename: {app}\ttermpro.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_teraterm}; Components: TeraTerm  Filename: {app}\ttermpro.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_teraterm}; Components: TeraTerm
210  Filename: {tmp}\Setup_LogMeTT_2_9_7.exe; Components: LogMeTT  Filename: {tmp}\Setup_LogMeTT_2_9_9_1.exe; Components: LogMeTT
211  Filename: {tmp}\Setup_TTLEditor_1_2_1.exe; Components: TTLEdit  Filename: {tmp}\Setup_TTLEditor_1_2_1.exe; Components: TTLEdit
212  Filename: {app}\ttpmenu.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_ttmenu}; Components: TeraTerm_Menu  Filename: {app}\ttpmenu.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_ttmenu}; Components: TeraTerm_Menu
213  Filename: {app}\Collector\Collector.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_collector}; Components: Collector  Filename: {app}\Collector\Collector.exe; Flags: nowait postinstall skipifsilent unchecked; Description: {cm:launch_collector}; Components: Collector
# Line 281  en.comp_TTXAlwaysOnTop=Always On Top can Line 281  en.comp_TTXAlwaysOnTop=Always On Top can
281  ja.comp_TTXAlwaysOnTop=常に最前面に表示できるようにする  ja.comp_TTXAlwaysOnTop=常に最前面に表示できるようにする
282  en.comp_TTXRecurringCommand=Recurring Command can be used  en.comp_TTXRecurringCommand=Recurring Command can be used
283  ja.comp_TTXRecurringCommand=定期的に文字列を送信する  ja.comp_TTXRecurringCommand=定期的に文字列を送信する
284    en.msg_AppRunningError=Setup has detected that %s is currently running.%n%nPlease close all instances of it now, then click Next to continue.
285    ja.msg_AppRunningError=セットアップは実行中の %s を検出しました。%n%n開いているアプリケーションをすべて閉じてから「次へ」をクリックしてください。
286    
287  [Code]  [Code]
288  const  const
# Line 356  begin Line 358  begin
358  end;  end;
359  }  }
360    
361    function CheckFileUsing(Filename:String) : integer;
362    var
363      TmpFileName : String;
364    begin
365      if FileExists(FileName) then
366        begin
367          TmpFileName := FileName + '.' + GetDateTimeString('yyyymmddhhnnss', #0, #0); // Tmp file ends with timestamp
368          if FileCopy(FileName, TmpFileName, True) then
369            if DeleteFile(FileName) then
370              if RenameFile(TmpFileName, FileName) then
371                Result := 0
372              else
373                Result := -1 // permission?
374            else
375              begin
376                Result := 1; // failed to delete
377                DeleteFile(TmpFileName);
378              end
379          else
380            Result := -1 // permission?
381        end
382      else
383        Result := 0;
384    end;
385    
386    function CheckAppsUsing() : string;
387    var
388      FileDir  : String;
389      FileName : array[0..6] of String;
390      FileDesc : array[0..6] of String;
391      i        : integer;
392    begin
393      FileDir := ExpandConstant('{app}');
394      FileName[0] := FileDir + '\ttermpro.exe';
395      FileName[1] := FileDir + '\ttpmacro.exe';
396      FileName[2] := FileDir + '\keycode.exe';
397      FileName[3] := FileDir + '\ttpmenu.exe';
398      FileName[4] := FileDir + '\cygterm.exe';
399      FileName[5] := FileDir + '\Collector.exe';
400      FileName[6] := FileDir + '\Collector_org.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      FileDesc[5] := 'Collector';
407      FileDesc[6] := 'Collector';
408      
409      for i := 0 to 6 do
410      begin
411        case CheckFileUsing(FileName[i]) of
412          1:
413            // Failed to delete. In use.
414            begin
415              if Length(Result) > 0 then
416                Result := Result + ', ' + FileDesc[i]
417              else
418                Result := FileDesc[i]
419            end;
420          else
421            // -1: Failed to copy/rename
422            //  0: OK
423            // NOP
424        end;
425      end;
426    
427    end;
428    
429  function GetDefaultIniFilename : String;  function GetDefaultIniFilename : String;
430  begin  begin
431    Result := ExpandConstant('{app}') + '\TERATERM.INI';    Result := ExpandConstant('{app}') + '\TERATERM.INI';
# Line 363  end; Line 433  end;
433    
434  procedure SetIniFile(iniFile: String);  procedure SetIniFile(iniFile: String);
435  var  var
436    Language : String;    Language      : String;
437    Locale   : String;    Locale        : String;
438    CodePage : integer;    CodePage      : integer;
439    VTFont   : String;    VTFont        : String;
440    TEKFont  : String;    TEKFont       : String;
441    FileDir  : String;    FileDir       : String;
442    TCPPort  : integer;    TCPPort       : integer;
443      ViewlogEditor : String;
444    
445  begin  begin
446    Language := GetIniString('Tera Term', 'Language', '', iniFile);    Language       := GetIniString('Tera Term', 'Language', '', iniFile);
447    Locale   := GetIniString('Tera Term', 'Locale', '', iniFile);    Locale         := GetIniString('Tera Term', 'Locale', '', iniFile);
448    CodePage := GetIniInt('Tera Term', 'CodePage', 0, 0, 0, iniFile);    CodePage       := GetIniInt('Tera Term', 'CodePage', 0, 0, 0, iniFile);
449    VTFont   := GetIniString('Tera Term', 'VTFont', '', iniFile);    VTFont         := GetIniString('Tera Term', 'VTFont', '', iniFile);
450    TEKFont  := GetIniString('Tera Term', 'TEKFont', '', iniFile);    TEKFont        := GetIniString('Tera Term', 'TEKFont', '', iniFile);
451    FileDir  := GetIniString('Tera Term', 'FileDir', '', iniFile);    FileDir        := GetIniString('Tera Term', 'FileDir', '', iniFile);
452      TCPPort        := GetIniInt('Tera Term', 'TCPPort', 0, 0, 65535, iniFile)
453      ViewlogEditor  := GetIniString('Tera Term', 'ViewlogEditor', '', iniFile);
454    
455    case GetUILanguage and $3FF of    case GetUILanguage and $3FF of
456    $04: // Chinese    $04: // Chinese
# Line 470  begin Line 543  begin
543      3:      3:
544        SetIniString('Tera Term', 'UILanguageFile', 'lang\French.lng', iniFile);        SetIniString('Tera Term', 'UILanguageFile', 'lang\French.lng', iniFile);
545      else      else
546        SetIniString('Tera Term', 'UILanguageFile', 'lang\English.lng', iniFile);        SetIniString('Tera Term', 'UILanguageFile', 'lang\Default.lng', iniFile);
547    end;    end;
548    
549    if Length(FileDir) = 0 then begin    if Length(FileDir) = 0 then begin
# Line 485  begin Line 558  begin
558        SetIniInt('Tera Term', 'TCPPort', 23, iniFile);        SetIniInt('Tera Term', 'TCPPort', 23, iniFile);
559    end;    end;
560    
561      if ViewlogEditor = 'notepad.exe' then begin
562        ViewlogEditor := ExpandConstant('{win}') + '\' + 'notepad.exe';
563        SetIniString('Tera Term', 'ViewlogEditor', ViewlogEditor, iniFile);
564      end;
565    
566  end;  end;
567    
568  procedure InitializeWizard;  procedure InitializeWizard;
# Line 515  begin Line 593  begin
593    case ActiveLanguage of    case ActiveLanguage of
594      'ja':      'ja':
595        UILangFilePage.SelectedValueIndex := 1;        UILangFilePage.SelectedValueIndex := 1;
596        // 他の言語は最新版に追従していないので、日本語だけ特別扱い
597      else      else
598        UILangFilePage.SelectedValueIndex := 0;        UILangFilePage.SelectedValueIndex := 0;
599    end;    end;
# Line 524  function NextButtonClick(CurPageID: Inte Line 603  function NextButtonClick(CurPageID: Inte
603  var  var
604    uninstaller  : String;    uninstaller  : String;
605    uninstaller2 : String;    uninstaller2 : String;
606    ResultCode: Integer;    ResultCode   : Integer;
607    iniFile : String;    iniFile      : String;
608      ErrMsg       : String;
609  begin  begin
610      Result := True;
611    
612    case CurPageID of    case CurPageID of
613    
614      wpWelcome:      wpWelcome:
# Line 560  begin Line 642  begin
642    
643        end;        end;
644    
645      wpSelectComponents:      wpSelectDir:
646        begin        begin
647    
648          iniFile := GetIniString('Tera Term', 'UILanguageFile', '', GetDefaultIniFilename());          ErrMsg := CheckAppsUsing();
649          if iniFile = 'lang\Japanese.lng' then          if Length(ErrMsg) > 0 then
650            UILangFilePage.SelectedValueIndex := 1            begin
651          else if iniFile = 'lang\German.lng' then              MsgBox(Format(CustomMessage('msg_AppRunningError'), [ErrMsg]), mbError, MB_OK);
652            UILangFilePage.SelectedValueIndex := 2              Result := False;
653          else if iniFile = 'lang\French.lng' then            end
           UILangFilePage.SelectedValueIndex := 3  
654          else          else
655            UILangFilePage.SelectedValueIndex := 0;          // -1: goto next. Turn over to Inno Setup.
656            //  0: goto next. No problem.
657            // NOP
658          end;
659    
660        wpSelectComponents:
661          begin
662    
663            if FileExists(GetDefaultIniFileName()) then
664            begin
665              iniFile := Lowercase(GetIniString('Tera Term', 'UILanguageFile', '', GetDefaultIniFilename()));
666              if iniFile = 'lang\japanese.lng' then
667                UILangFilePage.SelectedValueIndex := 1
668              else if iniFile = 'lang\german.lng' then
669                UILangFilePage.SelectedValueIndex := 2
670              else if iniFile = 'lang\french.lng' then
671                UILangFilePage.SelectedValueIndex := 3
672              else
673                UILangFilePage.SelectedValueIndex := 0;
674            end;
675    
676        end;        end;
677    end;    end;
   Result := True;  
678  end;  end;
679    
680  procedure CurStepChanged(CurStep: TSetupStep);  procedure CurStepChanged(CurStep: TSetupStep);
# Line 694  Name: {app}\copyfont.bat; Type: files Line 793  Name: {app}\copyfont.bat; Type: files
793  Name: {app}\copyfont.pif; Type: files  Name: {app}\copyfont.pif; Type: files
794  Name: {app}\libeay.txt; Type: files  Name: {app}\libeay.txt; Type: files
795    
796  [_ISToolPreCompile]  [InnoIDE_PreCompile]
797  Name: makechm.bat  Name: makechm.bat
798  Name: build.bat; Parameters: rebuild  Name: build.bat; Parameters: rebuild
799  ; Name: build.bat  ;Name: build.bat

Legend:
Removed from v.4067  
changed lines
  Added in v.4603

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