プロが教えるわが家の防犯対策術!

HTAを使ってスクリプトを書いています。
スクリプトが動いている時は画面が一切更新されない、黙ってしまうのは、ネットを見ると避けられないようです。

せめて、何らかの方法で実行状態を表示できないでしょうか。

A 回答 (3件)

Windows のスクリプト関連で困ったことがあったらこう叫ぼう。


Hey, Scripting Guy!

……というわけで、マイクロソフトのスクリプト関連のページを検索してみたら以下のようなページが見つかりました。ご参考までに。

Hey, Scripting Guy! HTA で時間のかかる処理を実行しているときにメッセージを表示したりカーソルの表示を変更したりする方法はありますか
https://gallery.technet.microsoft.com/scriptcent …
    • good
    • 0
この回答へのお礼

返答ありがとうございます

ご提示のホームページに行き、在中のコードを試しました。
しかし動作しませんでした。
残念です。

お礼日時:2014/12/20 07:19

ANo1です。



タイポがありました。 m(__)m

<hta:application applicationname="test")</hta:application>
           ↓
<hta:application applicationname="test"></hta:application>

ですね。
    • good
    • 0

こんにちは。



よくわかってませんけれど、通常のHTMLでのアニメーションやなにかと同様に、アプリケーションに処理を一旦戻してあげれば良いのでは?

処理を必要に応じて分割しなければならなくなるので、面倒と言えば面倒ですが…


ごく簡単なアニメーションの例(htaで実行してみてください)
(全角空白は半角に)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<hta:application applicationname="test")</hta:application>

<style type="text/css">
p { margin-bottom:0.5em; }
#bar {
width:300px; height:20px;
border:1px solid #666;
border-color: #444 #DDD #DDD #444;
}
#bar div {
width:0; height:100%;
background-color:#8AE;
}
</style>

</head>
<body>
<p><input type="button" value="start" onclick="hoge()">
← Click to start
<div id="bar">
<div></div>
</div>

<script type="text/javascript">
var hoge = (function(){
 var grad = 0, tId;
 var bar = document.getElementById("bar");
 var max = bar.clientWidth;
 bar = bar.getElementsByTagName("div")[0];

 return function(){
  if(!tId) tId = setInterval(fuga, 30);
 }

 function fuga(){
  if(grad>=max){
   clearInterval(tId); tId = null;
   alert("PROCESS ENDED !");
  }
  bar.style.width = ++grad + "px";
 }
})();
</script>
</body>
</html>
    • good
    • 0
この回答へのお礼

返答ありがとうございます

実行して見ました。
プログレスバーですね。

私の質問に具体性が無かったです。
例えば、
for (var i=0; i < 1000; ++i) {
処理
}
は時間が掛かります。”処理”に画面の変化が含まれていても、表面上、何も変わりません。
変わらなくてもいいのですが、せめてiの現在値を何らかの方法で知りたいです。
画面にiを表示するコードを書いても、画面全体の更新が止まっているので、当然表示されません。

ご提示のコードを使うと表示できるのですか。

お礼日時:2014/12/20 07:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!