こんな超ニッチな記事が役にたつ人いるのだろうか・・・。まぁ、防備録として。
Flashでシリアル制御アプリを作成中なのだが、Flashにはシリアル通信の機構がないため、別途プロクシアプリを起動しておくなど工夫が必要なことは、以前のエントリーで記載ずみ。
あらかじめそのあたりがわかっていて使うのならよいが、単にユーザーとして使うことを考えた場合、プロクシアプリが起動してるかどうか、や、事前に起動しておく、、などという手間を増やすのはアプリとして正しくない。
そこで、最初はFlashのfscommandを用いて、外部プログラム(具体的にはserproxy.exe)を自ら起動して、通信しようとしたのだが、どうもこのfscommandというのが、使い勝手が悪く、ろくに使えない。
また、serproxy.exeは、起動するとdos窓っぽいのが開きっぱなしになるし、格好悪い。できれば、最小化した状態で開きたい。
serproxyのショートカットを作って、そのプロパティを修正することで、ショートカットから開いた時は最小化、ということは可能だが、ショートカットにすると、こんどはfscommandから開けない。
いろいろ調べた結果、Flash(swf)をhta(HTML Application)に包んで、他アプリの制御などはVBScriptのShell機能を使うしかない、ということになった。(面倒すぎる)
VBScriptはまともに触ったことないし、HTAとなるとまたその作法もあったりして、一つのアプリを作るのにどんだけ言語を触ればいいのだ、とニワカにグッタリしているのだけれど、まずは完成させなければ。
※HTAというのは、Windows限定だけれど、簡単にアプリケーションを作成できる割と知られてないけど便利な仕組みです。基本はHTMLファイルです。拡張子がhtmlやhtmじゃなく、htaにするだけで、ダブルクリックで開けるアプリになります。希に市販アプリのインストーラーがhta形式で作られていることがあります。
1) まず、適当なエディタでhogehoge.htaというファイルを作成。
2) HTAの外観を設定する
参考 : Flash Desktop Applications - FLASH+HTA+WSHで作るWindowsデスクトップツール
head部分に、HTA:APPLICATIONというタグで、外観を指定可能。タイトルバーを付けないと、閉じることが出来なくなるので要注意。
3) SCRIPTを記述する
-
<script LANGUAGE="VBScript">
-
Sub Window_onLoad
-
-
window.resizeTo 640,480
-
-
Set objShell = CreateObject("Wscript.Shell")
-
objShell.Run ".\serproxy\serproxy.exe .\serproxy\serproxy.cfg",7
-
-
End Sub
-
</script>
window.resizeToというのは、その名の通り、ウィンドウをリサイズします。
次に、shellのインスタンス(objShell)を作り、Runにて、外部プログラムを起動。引数も渡せる。
で、キモが2番目のパラメータの7です。
Microsoftのメソッドによると、
0: ウィンドウを非表示にし、別のウィンドウをアクティブにします。
1:ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。アプリケーションでウィンドウを最初に表示するときには、このフラグを指定してください。
2:ウィンドウをアクティブにし、最小化ウィンドウとして表示します。
3:ウィンドウをアクティブにし、最大化ウィンドウとして表示します。
4:ウィンドウを最新のサイズと位置で表示します。アクティブなウィンドウは切り替わりません。
5:ウィンドウをアクティブにし、現在のサイズと位置で表示します。
6:指定したウィンドウを最小化し、Z オーダー上で次に上位となるウィンドウをアクティブにします。
7:ウィンドウを最小化ウィンドウとして表示します。アクティブなウィンドウは切り替わりません。
8:ウィンドウを現在の状態で表示します。アクティブなウィンドウは切り替わりません。
9:ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合は、元のサイズと位置に戻ります。アプリケーションで最小化ウィンドウを復元するときには、このフラグを指定してください。
10:アプリケーションを起動したプログラムの状態に基づいて、表示状態を設定します。
です。こうすることで、htaから外部プログラムを最小化した状態で起動できます。
・・・しかし、VBScriptってのは、記述方法というか、シンタックスが気持ちわるいな~独特ですな。
関連リンク:
*Hey, Scripting Guy! ‐ HTML アプリケーション (HTA)
*Flash Desktop Applications - FLASH+HTA+WSHで作るWindowsデスクトップツール
Popularity: 22% [?]




