SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

WiXではじめるWindows Installer作成入門

WiXではじめるWindows Installer作成入門 第4回

ユーザー情報入力画面の作成とシリアル番号の検証

  • このエントリーをはてなブックマークに追加

本連載は、WiXを利用してインストーラを作成するチュートリアル形式の入門記事です。第4回は、WiXで用意されていないユーザー情報入力画面を作成し、標準のシリアル番号確認ルーチンを使って、シリアル番号の検証を行います。

  • このエントリーをはてなブックマークに追加

はじめに

 本連載の第3回までで、WiXの標準UIを使ったインストーラの基本的な作成方法を解説しました。今回と次回の2回に分けて、標準では提供されていないユーザー情報入力画面の作成と、独自のシリアル番号検証を行うモジュールの作成、組み込みを行います。

過去の回

対象読者

 インストーラを必要とするすべての開発者。

必要な環境

 連載では、WiX 2.0.4103.0以降を対象としていますが、原則として原稿執筆時点での最新版を利用しています。今回の最新ビルドは2.0.4415.0(2006年8月15日公開)となっています。

 WiXの入手先とインストールについては第1回の「Windows Installer SDKのインストール」を参照してください。

インストーラのUI遷移の仕組み

 これまでとは異なり、今回からは自分の意図する画面遷移を行えるようにしていきます。そのためにはWiXの画面遷移の管理方法を知る必要があります。まずはこの部分の解説から入りましょう。

 Windows Installerの画面遷移ダイアログは既に見ているのでお分かりかと思いますが、一見するとあたかも通常のWizardダイアログのように動いています。しかし、実際には複数のダイアログ画面を切り替えながら表示する仕組みになっており、各ダイアログの移動ボタンで、次にどのダイアログを表示するかを指定しているのです。WiXでは、この移動先のダイアログ指定をプロパティで行えるようにして、同じダイアログでも構成によって違う動作ができる仕組みになっています。

 では、実際にどうなっているかを見てみましょう。下記のソースは、WixUI_InstallDirの画面遷移部分のソースを抜粋して、若干見やすいように組み替えたものです。

WixUI_InstallDir(抜粋改訂版)
<!-- インストール時の画面 -->
<!-- ようこそ -->
<DialogRef Id="WelcomeDlg" />
<Property Id="WixUI_WelcomeDlg_Next" Value="LicenseAgreementDlg" />

<!-- 使用許諾 -->
<DialogRef Id="LicenseAgreementDlg" />
<Property Id="WixUI_LicenseAgreementDlg_Back" Value="WelcomeDlg" />
<Property Id="WixUI_LicenseAgreementDlg_Next" Value="InstallDirDlg" />

<!-- インストール先確認 -->
<DialogRef Id="InstallDirDlg" />
<Property Id="WixUI_InstallDirDlg_Back" Value="LicenseAgreementDlg" />
<Property Id="WixUI_InstallDirDlg_Next" Value="VerifyReadyDlg" />
<Property Id="WixUI_InstallDirDlg_Browse" Value="BrowseDlg" />
<!-- インストール先選択 -->
<DialogRef Id="BrowseDlg" />

<!-- インストール確認 -->
<DialogRef Id="VerifyReadyDlg" />
<Property Id="WixUI_VerifyReadyDlg_BackRepair"
          Value="MaintenanceTypeDlg" />
<Property Id="WixUI_VerifyReadyDlg_BackRemove"
          Value="MaintenanceTypeDlg" />
<Property Id="WixUI_VerifyReadyDlg_BackInstallDir"
          Value="InstallDirDlg" />

<!-- メンテナンスモードでの画面
     (2000/XP ではこの画面は通常表示されない)-->
<!-- メンテナンスモードのようこそ -->
<DialogRef Id="MaintenanceWelcomeDlg" />
<Property Id="WixUI_MaintenanceWelcomeDlg_Next"
          Value="MaintenanceTypeDlg" />

<!-- メンテナンスタイプの指定 -->
<DialogRef Id="MaintenanceTypeDlg" />
<Property Id="WixUI_MaintenanceTypeDlg_Repair"
          Value="VerifyReadyDlg" />
<Property Id="WixUI_MaintenanceTypeDlg_Remove"
          Value="VerifyReadyDlg" />
<Property Id="WixUI_MaintenanceTypeDlg_Back"
          Value="MaintenanceWelcomeDlg" />

 このように、Next/Backでどのダイアログを表示するかを指定することにより、ダイアログの実装を変更することなく、画面遷移を自在にカスタマイズできるようになっています。最初に表示するダイアログ(WelcomeDlgなど)だけは、InstallUISequenceにダイアログを表示するための処理コードを持っていますが、これもダイアログ単位で用意しているため、全体構造そのものは、かなり自由にカスタマイズできるようになっています。

遷移を変更するには

 新たにダイアログを組み込む前に、もう少し簡単なカスタマイズとして、使用許諾画面の表示を省いた画面遷移を構成してみることにしましょう。

 前回の連載ではMondo形式で作成しましたが、今回は使用許諾画面だけを出さないように構成したUIを作ります。リソース定義が大半のため、紙面の都合上ソースは載せません。ソースはサンプルファイルの「STEdit7.wxs」を参照してください。

 変更点はソースを統合するために除外したヘッダー部分を除けば、実に数箇所(ダイアログを取り除いただけ)しかありません。それだけ簡単に変更できるということがよく分かると思います。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
ダイアログを用意する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
WiXではじめるWindows Installer作成入門連載記事一覧

もっと読む

この記事の著者

とっちゃん(トッチャン)

Microsoft MVP for Development Tools Visual C++Windows Installer 系を中心にオンライン/オフラインで活動しています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/632 2006/10/24 00:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング