読者です 読者をやめる 読者になる 読者になる

仕事を辞めたい、怠け者だからな

仕事を辞めたいとグダグダ言いながらも、やめる手順が面倒だということで結局やめない「からな」の面倒嫌いブログです。日々のことなり、色々書いていきます。自由気まま、やりたいことばかりやっちゃう。

仕事を辞めたい、怠け者だ
からな

メインブログです。
ぐだぐだしつつも、
やりたいことに全力全身!

最高の出会いを求めて
自身の最高の出会いまでの道のり、
方法を書いていきます。

標準体重を目指して
標準体重を目指して奮闘する!
ダイエットグッズ実践含みます。

【HTA】別ウィンドウを表示させる方法【VBS】

日記 備忘録 VBS(HTA)


HTAとは素晴らしきかな。大体のパソコンで動作することができる。



プログレスバーとか、ボタンを配置しないのであれば
IEを使って、使いまわしてやれば良いのだけれどそういう問題ではない。 ちなみに以下。
Hey, Scripting Guy! : スクリプトの実行中に進行状況バー (またはそれに似たもの) を表示する方法はありますか

「ボタン」や「コンボボックス」「リストボックス」その他…コントロールを使いたいのだ。

その場合には、IEを使用してしまうとセキュリティのため情報バーが出てしまい
許可しないと画面を見ることができない。これは非常に面倒くさい。


ということで、色々ググって考えた挙句
以下のように落ち着いた。


Hey, Scripting Guy!: 花が咲き、ダイアログが開き、春が来た

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プログラム書いてるけど
もう少しまとまったらきっちり書こうかな。


アフィリエイト ハッピーメールバナー