iexpressを使ってプログラムをWindowsの実行ファイル(exe形式)にパッキングしてみた

Windows OSでアプリケーションのインストールやプログラムの実行ファイルとして利用されるexe形式のファイルがあります。

有名なアプリケーションであれば、exe形式のインストーラーが用意されているかと思います。しかし、独自システムのインストーラーや独自アプリケーションを動かす場合に実行ファイル(exeファイル)を作成する必要があるかもしれません。

実行ファイルはwindows標準で搭載されている「iexpress」を利用することで簡単に作成することができます。ここでは、iexpressでexeファイルを作成する方法を紹介します。

やったこと

exeファイルを実行することでインストールが実行されることを想定します。

なお今回のインストールはサンプルプログラムを動作させるだけとします。

作成したサンプルプログラムはexeファイルにパッキングされます。

  • サンプルのプログラム作成(.batファイル、.cmdファイル)
  • iexpressによるexeファイル作成
  • 32bit版のexeファイル作成

システム環境

OS:Windows 10 Pro 64bit

バージョン:20H2

メモリ:16GB

CPU:Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz 3.19 GHz

サンプルプログラムの作成

exeファイルから呼び出されるプログラムを作成します。サンプルの内容は特に重要ではないため、簡単な処理を行うプログラムとします。以下の二つのファイルを用意します。

  1. sample.bat
    →start.cmdに呼び出され標準出力を行うバッチファイル
  2. start.cmd
    →exeファイルを実行した時に呼び出されるバッチファイル。

標準出力を行う「sample.bat」は以下の内容を記述します。

「start.bat」は「sample.bat」を呼び出すために、以下の内容を記述します。

作成したサンプルプログラムは以上となります。

iexpressを使ったexeファイル作成

まずは「iexpress」を管理者権限で実行します。

以下のようなウィザードがでますので、「Create new SelfExtraction Directiive file」を選択して、次に進みます。※既に作成された.SEDファイル利用する場合は「Open existing SelExtraction Directive file」を選択して次に進みます。

圧縮ファイルを解凍してインストールを行うため、「Extract files and run an installation command」を選択して次に進みます。

パッケージの名前を適当に入れます。

exeファイルを実行(ダブルクリック)した後に、ポップアップを表示する場合は、「Prompt user with:」を選択します。入力欄に出力したい文字列を記載して次に進みます。

exeファイルを本当に実行するかどうかを確認したい場合に利用します。

なお、「No prompt」を選択した場合は、exeファイルを実行した後にポップアップは表示されず、インストールが開始されます。

「Do not display a license」を選択して次に進みます。

圧縮したファイルを「Add」から複数選択し、次に進みます。

インストールコマンドを「Install Program」に記載します。

cmdファイルを選択しないとエラーとなりました。

インストールコマンドを実施した後にウィンドウを表示するかどうかの選択です。

特にこだわりがなければ「Default」でよいと思います。

インストール後に完了通知のようなポップアップを出力したい場合は「Display message」を選択し出力文字を入力して次に進みます。

exeファイルの保存先を指定して次に進みます。

インストールが終わった後に再起動を行うかどうかを設定します。

SelfExtraction Directive file(SED file)を作成する場合は、保存先を指定して次に進みます。

次へを押してexeファイルを作成します。

以下のようなポップアップが表示されたら無事exeファイルが作成されました。

完了を押して終了します。

exeファイルの作成(32bit版)

windows端末の中には32bitで動作している端末もいます。exeファイルもOSが32bit/64bitに合わせて作成する必要があります。ここではiexpressを使って32bit版のexeファイルを作成する方法について説明します。実施方法は簡単で、32bit版のiexpressを使って前節と同様の手順でexeファイルを作成すれば終わりです。なお、32bit版のiexpressのファイルパスは以下になります。前節と同様に管理者権限で実行してください。

動作チェック

「hoge.exe」という名前で作成されたexeファイルを実行(ダブルクリック)します。

インストール前のポップアップが表示されました(左)。「はい」を押すとインストールが開始されます。「いいえ」を押すとポップアップが消えて終了します。

start.cmd→sample.batの順に呼び出され標準出力されました(中央)。

インストール後のポップアップが表示されました(右)。

無事パッキングされたサンプルプログラムが実行されていることを確認できました。

メモ

インストールコマンドが実行されるカレントディレクトリについて調べてみました。以下の一時フォルダが作成されるようです。

「IXPxxx.TMP」のxxxは000から始まる数字です。複数同時にexeファイルが実行されるとインクリメントされた数字ごとに一時フォルダができるようです。またexeファイルにパッキングされたファイル(今回の場合はsample.batとstart.cmd)は一時フォルダの中に格納されます。なお、インストールが終了すると「IXPxxx.TMP\」ごと削除されます。

トラブルシューティング

exeファイル作成するにあたり、躓いた時のエラーを共有します。管理者権限でiexpressを実行しないと以下のようなエラーがでるようです。Unable to open the Report file ‘<ファイルパス>’とあるように管理者権限でしか開けないファイルがあるようです。

コメント

タイトルとURLをコピーしました