Тема: HTA: использование WScript.Sleep()
Файл WScript.js (он будет вызываться из HTA):
var ShellWindows=(new ActiveXObject("Shell.Application")).Windows();
for (var i=0; i<ShellWindows.Count; i++)
try {
var Script=ShellWindows.Item(i).Document.Script;
if (Script.name=="mailbox") {
Script.Callback(WScript);
for (;;) WScript.Sleep(60000);
}
} catch (Err) {}
Сам файл HTA, в котором будет вызываться WScript.Sleep:
<HTML>
<HEAD>
<META http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<SCRIPT language='JavaScript' type='text/javascript'><!--
var WScript=null;
var IE=new ActiveXObject("InternetExplorer.Application");
IE.Navigate("about:blank");
// здесь не помешала бы проверка на IE.Busy==false,
// однако, метод WScript.Sleep() пока не доступен,
// а window.setTimeout() усложнило бы пример.
IE.Document.Script.name="mailbox";
IE.Document.Script.Callback=function (arg) {
WScript=arg; IE.Quit();
};
var WshShell=new ActiveXObject("WScript.Shell");
WshShell.Run("WScript.js", 0);
onunload=function () {WScript.Quit()};
// --></SCRIPT>
</HEAD>
<BODY onClick='alert("Раз"); WScript.Sleep(5000); alert("Два");'>
При щелчке мышью по странице будет выведено сообщение "Раз",
а затем через 5 сек. сообщение "Два". Задержка между сообщениями
создаётся с помощью метода WScript.Sleep().
</BODY></HTML>
При щелчке мышью по странице будет выведено сообщение "Раз", а затем через 5 сек. сообщение "Два".
Автор примера - wisgest.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.