FC2ブログ
2018 09123456789101112131415161718192021222324252627282930312018 11
「H&Sの実験棟」は年中無休です入館は無料ですのでお気軽にどうぞ。
No. 421

実行ファイルの在り方を見直します

HTA ファイルや Powershell スクリプトを exe ファイルに変換する為に、
これまでは Quick.exe や nandemoExe.exe 或いは PowerGUI を使って来ました。
Quick.exe や nandemoExe.exe はNo.192で紹介していますし、
PowerGUI の方はNo.385で紹介しました。

確かにこれ等のツールはスクリプト ファイルを exe ファイルに変換しますが、
ネイティブ コードにコンパイルする訳では無いです。
また、幾つかのファイルを纏めて一つの exe ファイルにできるので便利ですが、
実体はコンパイラでは無くアーカイバです。

複数のファイルを一つの exe ファイルに纏めるアーカイブ機能と、
解凍後に指定のファイルを実行する機能と終了時に削除する機能を持っています。
普通にダブルクリックしても起動しない Powershell スクリプトでも、
それを可能にするのでそれだけでも大変便利です。

しかし、問題が全くない訳では有りません。
これ等のツールはスクリプトを隠蔽するばかりで無く、
実行時の実体(元のスクリプト)も隠蔽してしまいます。
何処に解凍されるのかが解凍時に決まるので事前には分かりません。

解凍後に起動された元のスクリプトから exe ファイルの所在を知る術も有りません。
例えば初期化ファイルが必要なプログラムを書いても、
初期化ファイルにアクセスする事ができない事になります。
勿論、必要なファイルを全てパッキングして exe ファイルにすれば可能です。
しかし、それではユーザが直接開く事ができなくなりますし、
毎回削除されてしまうので初期化ファイルの意味が無くなってしまいます。

nandemoExe.exe は環境変数を使う事で一部の問題を回避しています。
Quick.exe や PowerGUI にはその様な機能は無いようです。
この問題はレジストリを使うようにすれば解決しますが使いたくありません。
便利なツールでしたが見直す時期が来たようです。

今回、この様な状況を改善する為に新たな仕組みを導入する事にしました。
No.355の ImageViewer はコンテキスト メニューに表示させる為に、
実行時ディレクトリを「C:\Program Files (x86)\HandS」内に決めています。
他の HandS 製のソフトも今後は基本的にこのディレクトリを使うようにします。

更に exe 化の手段も実情に沿ったものに変更します。
こちらは未だ具体的には決まっていませんが現在試行錯誤中です。
状況に応じて従来のツールを使ったり別の方法に変更する可能性も有ります。
この解凍先(実際の実行ディレクトリ)が実行時に決まる事と、
解凍されたスクリプトから解凍元のディレクトリを知る術が無い為に、
実行ファイルをアップロードできなかった事例が幾つか在ります。
直近ではNo.419, 415, 414, 405がこれに該当します。

取り敢えずNo.419に関しては新しい方式に切り替えて公開する予定です。
それより以前の物に関しては開発途中版でもあるので遣り直しの予定は有りません。
但し、それ等に関しても今後の更新では新方式で公開する予定です。

実行時ディレクトリが指定される事になりますが、
インストール形式に変更になる訳では無くレジストリも使用しません。
HandS ディレクトリでの一元管理になり寧ろ扱いが楽になります。
デスクトップでの使用を希望される時はショートカットを作成すれば可能です。
[No. 421] 2017/10/13(金) その他のHandS track back(0) comment(0)

コメントの投稿















| ホーム |
Page Top↑