« コマンドラインでテキストファイルをHTMLファイルにする。 | トップページ | コマンドラインでHTMLファイルをテキストファイルにする。 »

2006年12月26日 (火)

HTA起動時にmoveTo/resizeToがエラーになるのを防止する。

HTA起動時に「エラー: アクセスが拒否されました。」のエラーになることがあります。
これはマウスダウンしていると発生するようです。

この対策は、エラーを捕捉してリトライループすることです。
つまり、起動時、マウスダウンしている間は、CPUループして待ち合わせます。
マウスを離すと、ループを抜けてHTAが表示されます。

<html><head>
<script>
while(true){
  try{
    resizeTo(300, 300);
    moveTo(100,100);
    break;
  }catch(e){}
}
</script>
<hta:application></hta:application>
</head><body></body></html>

この部分はJScriptで書いたほうが簡単ですが、VBScriptの例も。

<html><head>
<script language="vbscript">
Sub Try()
On Error Resume Next
resizeTo 300,300
moveTo 100,100
End Sub
Do
Try
Loop While Err
</script>
<hta:application></hta:application>
</head><body></body></html>

« コマンドラインでテキストファイルをHTMLファイルにする。 | トップページ | コマンドラインでHTMLファイルをテキストファイルにする。 »