HTAとは素晴らしきかな。大体のパソコンで動作することができる。
プログレスバーとか、ボタンを配置しないのであれば
IEを使って、使いまわしてやれば良いのだけれどそういう問題ではない。 ちなみに以下。
Hey, Scripting Guy! : スクリプトの実行中に進行状況バー (またはそれに似たもの) を表示する方法はありますか
「ボタン」や「コンボボックス」「リストボックス」その他…コントロールを使いたいのだ。
その場合には、IEを使用してしまうとセキュリティのため情報バーが出てしまい
許可しないと画面を見ることができない。これは非常に面倒くさい。
ということで、色々ググって考えた挙句
以下のように落ち着いた。
Hey, Scripting Guy!: Flowers Blooming. Dialogs Popping. Spring Is Here.
Scripting Guy!さんのコメントは全て、なんだか面白い。
春が来ました。 かつてないほどの喜びです。
https://technet.microsoft.com/ja-jp/magazine/cc162366.aspx
記録的な雨量、アイス ストーム、雪嵐、暴風雨に見舞われた冬を経て、
ついに春がやってきました (ある嵐では、大木が Scripting Guys の 1 人の裏庭に倒れ込みました。
ぎりぎりのところで家屋に被害はありませんでしたが、Scripting Dog はソファーの後ろに逃げ込みました)。
今は、ひんやりとした雨を楽しんでいます。これが過ぎると、夏の太平洋岸北西地区の温かい雨に変わります。
外の小雨を眺めているとき、スクリプトでちょっとした冒険をして、
HTML アプリケーション (HTA) を見てみるいい機会だと思いました。
冒険というからには、そのとおり本気で冒険します。ここでは初歩的な説明はしません。
読者が HTA とは何かや、HTA の作成方法を既に理解していることを前提にします。
モーダルと、モードレスの違い。
ご存じかもしれませんが、ダイアログ ボックスには 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プログラム書いてるけど
もう少しまとまったらきっちり書こうかな。