shuangliudaxia 发表于 2013-6-25 21:53:24

【已解决】ShellExecuteWait函数不等待是怎么回事

本帖最后由 shuangliudaxia 于 2013-6-26 12:53 编辑

ShellExecuteWait("毒战3分钟预告片.rmvb")
InetGet("http://hezuo.down.xunlei.com/xunlei/thunder_bd.exe", "d:\thunder_bd.exe",0)
Run("d:\thunder_bd.exe")

就是上面这段代码让我闹心啊,我用了ShellExecuteWait函数。帮助里面的解释是:使用 ShellExecute API 执行一个外部程序并暂停脚本运行,直到外部程序正常结束.

我播放的毒战才放了几秒种,D盘就开始下载迅雷安装包了而且下载完成后就弹出安装界面了。郁闷·········并没有等毒战3分钟放完才执行后面的动作。

我想问一下 能不能在Inetget 和Run这两行之间插入什么代码实现:当我中途关闭“毒战3分钟预告片”或者 等它正常播完3分钟后才运行后面的迅雷安装界面。。。。。。。

user3000 发表于 2013-6-26 00:04:46

回复 1# shuangliudaxia $time = TimerInit()
While 1
        If Not WinExists('毒战3分钟预告片') Or TimerDiff($time) > 3*60*1000 Then ExitLoop
        Sleep(1000)
WEnd

shuangliudaxia 发表于 2013-6-26 09:32:12

回复 2# user3000


    这兄弟,告诉你个坏消息,用你的SLEEP函数的方法我刚刚试过了在我笔记本上面正常,但是我换到我的台式机上面运行时SLEEP函数就会有误差,电影播放到2分42就开始运行后面的程序了········

shuangliudaxia 发表于 2013-6-26 09:46:04

回复 2# user3000


    我在朋友电脑上面又测试了一下 正常了,我估计是我那个台式机可能时间没有校准。谢谢兄弟了。

请受小弟一拜{:face (189):}


就是不知道这种方法费CPU资源不?程序运行时我看见我的CPU灯闪得很密。是不是那个IF NOT函数

一直在内存里面不停的做判断动作啊?

user3000 发表于 2013-6-26 12:29:48

回复 5# shuangliudaxia


    没有CPU灯吧? 应该是硬盘灯!
你不是在播放视频吗,当然会不停闪了.
它是1秒才做一次判断,其实是够慢了!

shuangliudaxia 发表于 2013-6-26 12:52:32

回复 6# user3000

谢谢兄弟,此贴我马上改为【已解决】

兄弟可否研究一下此贴:http://www.autoitx.com/thread-38922-1-1.html

wyzxzx 发表于 2015-10-23 01:05:58

做的挺漂亮的,
页: [1]
查看完整版本: 【已解决】ShellExecuteWait函数不等待是怎么回事