中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 13:22
48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [VBS]HTA里如何脚本延迟?
可打印版本  2,118 / 15
第1楼 kich 发表于 2007-10-28 20:47
中级用户 发帖 168 积分 397
[VBS]HTA里如何脚本延迟?
HTA里如何脚本延迟?
vbs里是wscript.sleep

hta 里如何做到呢?
第2楼 abcd 发表于 2007-10-28 21:09
银牌会员 发帖 739 积分 1,436
试试setTimeout吧
第3楼 kich 发表于 2007-10-29 16:22
中级用户 发帖 168 积分 397
能不能给点详细使用方法,网上不好找,找了好多都是php什么的
第4楼 abcd 发表于 2007-10-29 16:25
银牌会员 发帖 739 积分 1,436
setTimeout Method Internet Development Index

--------------------------------------------------------------------------------

Evaluates an expression after a specified number of milliseconds has elapsed.

Syntax

iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])
Parameters

vCode Required. Variant that specifies the function pointer or string that indicates the code to be executed when the specified interval has elapsed.
iMilliSeconds Required. Integer that specifies the number of milliseconds.
sLanguage Optional. String that specifies one of the following values: JScript Language is JScript.
VBScript Language is VBScript.
JavaScript Language is JavaScript.


Return Value

Integer. Returns an identifier that cancels the evaluation with the clearTimeout method.


你没有《DHTML 手册》这本电子书吗?
第5楼 abcd 发表于 2007-10-29 16:26
银牌会员 发帖 739 积分 1,436
MSDN里也有说明的

window.setTimeout("alert('Hello, world')", 1000);
第6楼 zh159 发表于 2007-10-29 17:10
金牌会员 发帖 1,467 积分 3,687
在HTA里,好像setTimeout并不能完全替代wscript.sleep,wscript.sleep是在延时后再执行下一行命令,而setTimeout是延时执行另一条命令,下一行的命令并不能延时。
目前我还没发现代替wscript.sleep的命令,只能用While...Wend 来计时,缺点是占用资源高
第7楼 sonicandy 发表于 2007-10-29 21:09
中级用户 发帖 91 积分 273
我觉得可以把整个过程拆开成链表的形式
A->B->C
然后用用SetTimeout来调用
call A()

sub A()
'...
hB = settimeout("B",1000)
end
sub B()
'...
hC = settimeout("C",1000)
end
sub C()
'...
end
第8楼 kich 发表于 2007-10-30 19:55
中级用户 发帖 168 积分 397
可以不可以这样?只是个思路.
在HTA里,用ws.run运行 wscript.exe 让他执行一句wscript.sleep 3000 ,当然这里的ws.run后面的语句加上 true等待执行完毕再运行下行代码,这样就实现HTA延迟.
不知道这样行否?(我是楼主)
第9楼 sonicandy 发表于 2007-10-30 21:28
中级用户 发帖 91 积分 273
楼上的意思应该是
hta->(bat)->vbs 对吧?


[ Last edited by sonicandy on 2007-10-30 at 09:36 PM ]
第10楼 kich 发表于 2007-10-30 22:06
中级用户 发帖 168 积分 397
谢谢,谢谢,借助于您的脚本,写下以下HTA,测试可以等待,但效果不是很好,会有点漏斗按钮.
可以进一步把这个文件写进temp目录下,然后进行文件属性的隐藏(我没搞这操作)
第11楼 kich 发表于 2007-10-30 22:12
中级用户 发帖 168 积分 397
对于以上代码,个人提出问题,有没有这样的代码(思路):
shell.run "wscript.exe msgbox 'ok'"

也知道wscript.exe 要直接运行文件,但有没有什么程序可以直接执行 一句代码,这样可以达到:
shell.run "wscript.exe wscript.sleep(3000)"这样的功能,呵呵,遐想!

[ Last edited by kich on 2007-10-30 at 10:13 PM ]
第12楼 zh159 发表于 2007-10-31 02:16
金牌会员 发帖 1,467 积分 3,687
试试这个:
第13楼 kich 发表于 2007-10-31 13:17
中级用户 发帖 168 积分 397
有没有不用临时文件就可以进行脚本延迟的??
第14楼 zh159 发表于 2007-11-18 21:42
金牌会员 发帖 1,467 积分 3,687
如果不需要高精度的,可以用:
第15楼 kich 发表于 2007-11-19 08:35
中级用户 发帖 168 积分 397
进程里会有CMD闪烁,等待漏斗看了难受.
谢谢各位了,看样子还是用setTimeOut来想办法吧~~!哎
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023