« MHTMLファイルを分解する。 | トップページ | コマンドプロンプトでCALLと^を使って遅延展開する。 »

2010年5月 8日 (土)

HTAやHTML、Excel VBAなどでWScript.ShellのPopup(時間指定)を使う。

マウスがPopupウィンドウの上にあれば効きます。
マウスがHTAウィンドウの上にあれば効きません。
経過時間タイマにすべきところを、待ち時間タイマにしているため、他のウィンドウにマウスがあると、CPUが動いて、待ち時間タイマがリセットされる?

この仮説を確認する.vbs

set d=createobject("htmlfile")
d.parentwindow.setinterval getref("proc"),1000
createobject("wscript.shell").popup "5",5
sub proc
end sub

結果、待ちが解けません。

そこで、
CreateObject("WScript.Shell").popup("5秒後に閉じたい",5)
の代わりに、
CreateObject("WScript.Shell").Run "mshta.exe vbscript:execute(""close(CreateObject(""""WScript.Shell"""").popup(""""5秒後に閉じます"""",5))"")"

« MHTMLファイルを分解する。 | トップページ | コマンドプロンプトでCALLと^を使って遅延展開する。 »