2017年5月26日金曜日

Inno Setup Compiler 5.5.9 (u)

Windows向けインストーラ作成プログラムの中の一つ、Inno Setup Compilerについて簡単に使い方を説明する。

Free Softwareで、GitHubでソースコードも公開されている。このソースコードそのもののライセンス形態はかなり緩い。変更しても公開する必要に関して言及されていないので、たぶんそのまま持って商用にも使える。ただ、著作権表示に関しては厳密にせよということが書かれている。http://www.jrsoftware.org/

インストール

平成29年5月現在、このソフトのオリジナルサイトからのバイナリは2種類、Unicode対応と非対応のものだ。Inno Setup Helpにある記述によると、Inno Setup 5.3.0からこの形態になった。
これらの内、必要なものをダウンロードする。この時、両方とも欲しいような場合、別なフォルダーにインストールすれば良いらしい。

使い方

平成29年5月現在、バージョン5.5.9において、拡張子 .iss を持つテキストベースのスクリプトファイルに全ての情報を書き込み、Inno Setup Compilerでインストーラを作成する、という流れとなっている。

Inno Setup Compilerを立ち上げ、WelcomeウィンドウのNew fileでCreate a new script file using the Script Wizardを選択すると、簡単に自分用の雛形を作ることが出来る。
単にアプリケーションをインストールするだけならばこれでインストーラを作成できる。

ここで、Wizardのほぼデフォルトの設定で作成されたスクリプトを以下に示す。

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{xxxxxxxxxxxxxxxxxxxxx}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Program Files (x86)\Inno Setup 5\Examples\Readme.txt"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

64bitアプリ用の修正

このままでも所定のアプリ、'''MyProg.exe'''をシステムの指定のディレクトリにインストールされる。ただ、x64になってから、デフォルトでは、
 C:\Program Files (x86)
にインストールされてしまう。64bitアプリケーションならば、
 C:\Program Files
にインストールされるべきである。64bitアプリだけインストールしたいのならば、
 DefaultDirName={pf}\{#MyAppName}
の{pf}を{pf64}に変更すれば良い。

Redistributable Packages

古い開発環境で開発されたアプリを最新のOSでの動作をさせようとすると、マイクロソフトがそれように提供している追加のパッケージをインストールしないとランタイム時にエラーを起こしてしまう。そのため、ユーザのためには、予めインストーラで提供できれば良い。そのためには、ディレクティブ、[Files]でそのファイルをどこに出力するかを指定し、[Run]ディレクティブで実行させれば良い。

そのためには、まず、
[Files]
Source: "C:\Users\foo\vcredist_x64.exe"; DestDir: {tmp}; Flags: deleteafterinstall

で{tmp}ディレクトリにvcredist_x64.exeをコピーするように指定する。ちなみにFlagsで処理後には消去指定してある。
そして、
[Run]
Filename: {tmp}\vcredist_x64.exe; Parameters: "/q /norestart"; \
  StatusMsg: "Installing VC++ 2013 Redistributables..."
で実行させることを指定する。

日本語などのメッセージは既にInno Setup 5のディレクトリ内に、Languagesというディレクトリ内部に各言語の.islファイルとして用意されている。これを用いるには、スクリプトの中で、
[Setup]
...
[Languages]
Name: japanese; MessagesFile: compiler:Languages\Japanese.isl

という[Languages]というsectionに追加する。するとインストーラのメッセージを日本語にする事が出来る。

2017年5月25日木曜日

Windows用インストーラー作成ソフト

今更ながらインストーラの必要性を少し感じ、どんなソフトがあるのか調べてみた。ちなみに、Mac OSXでは、スタティックリンクされたアプリであれば、追加するライブラリは、多分無いので、インストーラの必要性を感じていなかった。WindowsではStatic Linkしていても、システム系で互換性のためのファイルがOSのバージョンアップで無くなることがある。

以下に、インストール作成ソフトを挙げてみる。
ただし、Visual Studioの無料版であるExpressやCommunityというバージョンでは、機能拡張が使えないので、これらのソフトはVisual Studio Express系の内部から使うことが出来ないことに注意して欲しい。

InstallShield LE

現在、Visual Studioの公式インストーラのようだ。Visual Studioのプロジェクト追加からこの無料版ソフトをインストール出来る。

Advanced Installer

Free版があり、Microsoft MVP か MCT、もしくはブログなどSNSで宣伝してくれれば無料にする。そのブログなどのURLを知らせる必要がある。

InstallAware

メールアドレスを登録するとFree版がダウンロードできる。

WiX 

Windows Installer XMLの略で、WiX。もともとMicrosoftの開発だったが、現在はちがい、その上、Open Source Projectである。

Inno Setup

無料のソフトで、独自のフォーマットで作成される。 
続く。

2017年5月19日金曜日

両手打ちバックハンドの歴史

朝食の時に、女房とテニスの話をしていて、ふと両手打ちバックハンドっていつくらいからいたんだろう、と言う話が出た。
実際にテレビなどで見た記憶では、男子ではジミー・コナーズ、ビョルン・ボルグ、クリフ・ドライスデール、女子ではクリス・エバートが頭によぎった。
雑誌かなんかで読んだ記憶では、パンチョ・セグラという選手のフォアが両手打ちだった。
で、ちょっと調べてみた。有名なのは、ビビアン・マクグラス。このオーストラリアの男子!選手が両手打ちを有名にしたと言われているようだ。この人は1930年代の人らしい。
どっかのフォーラムによると、1920年代あたりにはものすごく変わった打ち方の人たちがいたらしいので、そのころにも両手打ちの萌芽があったのかもしれない。
ATPのサイトで世界ランキング一位になった人たちのリストを見ると、面白いことが分かる。40年くらい前には両手打ちの選手が少なかったにもかかわらず、コナーズ、ボルグが一位。最近では、両手打ちバックの選手が多いにもかかわらず、フェデラーが長いこと一位だった。今はジョコビッチ、マレーだけど。いずれにせよ、余り両手打ちの選手の一位というのは多くないみたいだ。今後はわからないけど。