求助,如何让同一个脚本排队依次运行?【已解决】
本帖最后由 sunafter 于 2011-8-21 08:20 编辑比如abc.exe,运行前检测有几个正在运行的abc.exe,等前面的都退出了,自身再继续运行?
abc.exe运行时有命令行参数
我自己写了个函数,检测与脚本自身名字相同的进程,返回一个包含进程数量及各自PID的数组
然后将这些进程的PID与当前脚本的@AUTOPID比对,删除脚本自身的PID元素得到一个新数组
再依次等待这个新数组中的每个PID的进程退出,等所有进程都退出后自身再继续运行
感觉思路有点复杂,并且实际应用中经常发生所有进程都不能继续运行的问题 #include <lsasecur.au3>
$pObjAttrib = _SeInitObjAttrib("\Queue", 0x80)
$hSemaphore = __SeCreateSemaphore(1, 1, $pObjAttrib)
__SeWaitForObject($hSemaphore)
MsgBox(0, "OK", "Do something...")
__SeReleaseSemaphore($hSemaphore, 1)
_SeCloseHandle($hSemaphore)
_SeHeapFree($pObjAttrib)
pusofalse 发表于 2011-8-21 07:27 http://www.autoitx.com/images/common/back.gif
感谢P大o(∩_∩)o ,虽然偶看不懂,可是拿来套还是会的、、、{:face (396):} 抓紧时间学习下P大的UDF{:face (303):}
顺便赚个10分 谢谢前辈的指点,正遇到软件同事并发执行排队的问题~
页:
[1]