2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« バッチファイルでファイルを読む方法 | トップページ | HTAファイルをバッチファイルにする。 »

2006年9月16日 (土)

MSHTA.EXEの使用法、URLの記述法

MSHTA.EXE {ファイル|URL} [引数...]

ファイルはフルパスで指定します。
もしファイルがないと、非表示でダンマリになるので注意。
URLは最大511バイトです。
もし超えると、バッファオーバランでDEPに引っ掛かります。
URLに空白を含むときや、CMD.EXEで<>|を含むときは、二重引用符で囲みます。

"javascript:スクリプト"

スクリプト中では、'文字列'を使う。"は使わない。文字列中では、\'を使う。
文字列中では、\は\\を使う。なのでファイル名の文字列は要注意です。
ファイル名の文字列を使うときは、次のvbscript:のほうがよいでしょう。

vbscript:Execute("スクリプト")

スクリプト中では、""文字列""を使う。文字列中では、""""を使う。
文は、:で区切ります。
IfはEnd If文で閉じます。
If 式 Then:文:文:文:End If:
If 式 Then:文:文:文:Else:文:文:文:End If:

"about:HTML記述"

HTML中では、'文字列'を使う。"は使わない。文字列中では、\'を使う。
文字列中では、\は\\を使う。なのでファイル名の文字列は要注意です。
ファイル名の文字列を使うときは、先のvbscript:のほうがよいでしょう。

javascript:スクリプト

vbscript:スクリプト
は、
<0s>:<1s>
として、以下のように実行されます。

<HTML><SCRIPT LANGUAGE=<0s>>var __w=<1s>;if(__w!=null)document.write(__w);</SCRIPT></HTML>

※ このHTMLは、MSHTML.DLLの中にあります。

つまり、eval(スクリプト)の評価結果がundefinedやEmptyでないときは、HTMLとして扱われます。

したがって、
"javascript:'HTML記述'"

vbscript:"HTML記述"
は、
"about:HTML記述"
と同じです。

逆に、
"javascript:スクリプト;close();"

vbscript:Execute("スクリプト:close:")
とすれば、HTAウィンドウを表示する前に終了するので、非表示でスクリプトが実行できます。

« バッチファイルでファイルを読む方法 | トップページ | HTAファイルをバッチファイルにする。 »