start.exeはCygwin環境などで利用することを意図した、Windowsのコマンドラインツールです。Windowsの「関連付け」に従って、データファイルを指定してアプリケーションを起動することができます。比較的最近の Internet Explorer がインストールされていれば、URL を指定してウェブブラウザを起動することもできます。
Windowsのコマンドプロンプト (いわゆる「DOS窓」) ではstart
というコマンドが使えます。これは、Windowsのエクスプローラでファイルをダブルクリックしたときの動作を、コマンドで行うものです。例えば、start foo.exe
とすればプログラムfooが起動し、start foo.txt
とすればテキストエディタが起動してfoo.txtというファイルの編集状態になり、start foo.avi
とすればメディアプレーヤーが起動してfoo.aviという動画の再生が始まります。
筆者は、コマンドプロンプトで作業をするときに、Windowsのstartコマンドをよく使います。Cygwinで、bashを使っているときにもstartと打ち込んでしまうことがよくありました。ところが、Windowsのstartコマンドは、Windowsのコマンドシェル (具体的には、COMMAND.COM
またはCMD.EXE
のビルトインコマンドであるため、Cygwin環境では利用できません。
しかたがないので、同等品を作ってしまったのが、このstart.exeです。
bashなどから、start filename
のようにして使います。ここでfilename
は、目的のファイル名です。すると、Windowsのエクスプローラでこのファイルをダブルクリックしたときと同じことが起きるはずです。通常は、ファイル名の拡張子に従ってファイルと関連付けられたアプリケーションが起動し、編集、表示、再生などの「デフォルトの動作」が行われます。
Windowsのstartコマンドとは、以下のような点が異なります。
実行ファイルとソースを用意しました。どちらも.ZIPです。ソースはCで書いてあります。
筆者は、Cygwinを用いてgcc
でコンパイルしました。リソースのコンパイルにはwindres
を使いました。ただし、cygwin環境ではなく、mingw環境でコンパイルしています。(このため、start.exeの実行には、Cygwinは必要ありません。)
Cygwinやgccに特有の機能は利用していませんから、マイクロソフトなど、他のコンパイラでもコンパイルできると思います。