进程中没有结束程序,如何解决?
文件1.au3$mz1="打开临时文件夹.au3"
$mz2="打开当前文件夹.au3"
Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $mz2 & '"')
Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $mz1 & '"')
打开临时文件夹.au3
ShellExecute(@TempDir)
打开当前文件夹.au3
ShellExecute(@WorkingDir)
编译“文件1.au3”为“文件1.exe”后,和上面两个au3文件放在同一文件夹内运行,
结果进程里会有一个“文件1.exe”不能自动结束。
如何解决?
--------------------------------------------------------------------------------------------------------
没办法,在主程序(如文件1.au3)加入以下代码可提高成功率:
先改下这二个au3文件,添加一个延时
打开临时文件夹.au3
ShellExecute(@TempDir)
sleep(200)
打开当前文件夹.au3
ShellExecute(@WorkingDir)
sleep(200)
再在主程序中加入
Sleep(500)
;等待0.5秒
$var = ProcessList(@ScriptName)
;获取当前程序的进程列表
Sleep(300)
;等待0.3秒
For $i = $var To 2 Step -1
ProcessClose($var[$i])
Next
;从最后一个进程(PID)到第二个进程(PID)逐个结束进程
[ 本帖最后由 星驰周 于 2009-1-10 00:12 编辑 ] 像这种 一行就可以达到的效果 我觉得还是应该写在一个脚本里比较好
没必要 模块化 。。。。
[ 本帖最后由 sxd 于 2009-1-8 11:57 编辑 ] 一行只是例子,实用起来当然不至一行了 你这样调用的话,进程里应该有3个 文件1.exe
至于为什么有一个没退出,就要你自己检查源码了。 饿...如果这就是你的完整代码 那肯定最后只有两个
该结贴了
没办法,加入以下代码可提高成功率:Sleep(500)
;等待0.5秒
$var = ProcessList(@ScriptName)
;获取当前程序的进程列表
Sleep(300)
;等待0.3秒
For $i = $var To 2 Step -1
ProcessClose($var[$i])
Next
;从最后一个进程(PID)到第二个进程(PID)逐个结束进程
[ 本帖最后由 星驰周 于 2009-1-10 00:05 编辑 ] 这个问题我现在还看不懂,等过段时间我再来学习 这个问题我看不懂
页:
[1]