HTAとは素晴らしきかな。大体のパソコンで動作することができる。
プログレスバーとか、ボタンを配置しないのであれば
IEを使って、使いまわしてやれば良いのだけれどそういう問題ではない。 ちなみに以下。
Hey, Scripting Guy! : スクリプトの実行中に進行状況バー (またはそれに似たもの) を表示する方法はありますか
「ボタン」や「コンボボックス」「リストボックス」その他…コントロールを使いたいのだ。
その場合には、IEを使用してしまうとセキュリティのため情報バーが出てしまい
許可しないと画面を見ることができない。これは非常に面倒くさい。
ということで、色々ググって考えた挙句
以下のように落ち着いた。
Hey, Scripting Guy!: Flowers Blooming. Dialogs Popping. Spring Is Here.
Scripting Guy!さんのコメントは全て、なんだか面白い。
春が来ました。 かつてないほどの喜びです。
記録的な雨量、アイス ストーム、雪嵐、暴風雨に見舞われた冬を経て、
ついに春がやってきました (ある嵐では、大木が Scripting Guys の 1 人の裏庭に倒れ込みました。
ぎりぎりのところで家屋に被害はありませんでしたが、Scripting Dog はソファーの後ろに逃げ込みました)。
今は、ひんやりとした雨を楽しんでいます。これが過ぎると、夏の太平洋岸北西地区の温かい雨に変わります。
外の小雨を眺めているとき、スクリプトでちょっとした冒険をして、
HTML アプリケーション (HTA) を見てみるいい機会だと思いました。
冒険というからには、そのとおり本気で冒険します。ここでは初歩的な説明はしません。
読者が HTA とは何かや、HTA の作成方法を既に理解していることを前提にします。
https://technet.microsoft.com/ja-jp/magazine/cc162366.aspx
モーダルと、モードレスの違い。
ご存じかもしれませんが、ダイアログ ボックスには 2 種類あります。
モーダルとモードレスです。
違いは、モーダル ダイアログ ボックスを開くと、そのダイアログ ボックスを閉じるまで、
ダイアログ ボックスを開いたメイン ウィンドウに戻ることができません。
モードレス ダイアログ ボックスを開いた場合は、ウィンドウ間を移動できます。
ただし、メイン ウィンドウを閉じると、モードレス ダイアログ ボックスも閉じられます。
https://technet.microsoft.com/ja-jp/magazine/cc162366.aspx
わかりやすいから説明要らないと思うけど念のため。
モーダルウィンドウは、開いてしまうと前のウィンドウの動作は閉じるまでできない。
モードレスウィンドウは、前のウィンドウの動作も同時進行で可能。
相手に何かの入力を促すのであれば、モーダルウィンドウが良いと思います。
MAIN.hta
DATA=5
TEST = ShowModalDialog("data\MODALWIN.hta", DATA , "dialogHeight:230px;dialogWidth:230px")
Msgbox TEST
自分のHTAファイルのあるフォルダ内にdataフォルダを作成し、
その中にMODALWIN.htaを作成したよ。
data\MODALWIN.hta
<html>
<head>
<title>番号を指定してください</title>
</head>
<body>
以下のボタンをクリックし、<BR>番号を指定してください。
<BR><BR>
<span id="DataArea"></span>
<script language="vbscript">
Sub Window_OnLoad
Dim ALLDATA(),DATA,i
DATA = window.dialogArguments
DQ=""""
For i=1 to DATA
BUTTONDATA= BUTTONDATA & "<input type=" & DQ & "button" & DQ & " value="& DQ & i & DQ & " onClick=" & DQ & "ButtonAction(" & i & ")" & DQ & " style=" & DQ & "WIDTH: 40px; HEIGHT: 40px" & DQ & "/>"
IF i Mod 5 = 0 then
BUTTONDATA=BUTTONDATA & "<BR>"
End if
Next
DataArea.InnerHTML = BUTTONDATA
End Sub
Sub ButtonAction(DATA)
window.returnValue = DATA
window.close
End Sub
</script>
</body>
</html>
単純に、これ実行すると
MAIN.hta に書いてある5。
5までのボタンを作成し、押したらその数値を戻す。
たったそれだけ。
でも、情報の受け渡しができるのは良く分かるw
もっと色々HTAプログラム書いてるけど
もう少しまとまったらきっちり書こうかな。