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ウィンドウを表示する前に終了するので、非表示でスクリプトが実行できます。


最近のコメント