sunafter 发表于 2011-8-21 04:23:27

求助,如何让同一个脚本排队依次运行?【已解决】

本帖最后由 sunafter 于 2011-8-21 08:20 编辑

比如abc.exe,运行前检测有几个正在运行的abc.exe,等前面的都退出了,自身再继续运行?
abc.exe运行时有命令行参数
我自己写了个函数,检测与脚本自身名字相同的进程,返回一个包含进程数量及各自PID的数组
然后将这些进程的PID与当前脚本的@AUTOPID比对,删除脚本自身的PID元素得到一个新数组
再依次等待这个新数组中的每个PID的进程退出,等所有进程都退出后自身再继续运行
感觉思路有点复杂,并且实际应用中经常发生所有进程都不能继续运行的问题

pusofalse 发表于 2011-8-21 07:27:02

#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)

sunafter 发表于 2011-8-21 08:19:52


pusofalse 发表于 2011-8-21 07:27 http://www.autoitx.com/images/common/back.gif

感谢P大o(∩_∩)o ,虽然偶看不懂,可是拿来套还是会的、、、{:face (396):}

sunafter 发表于 2011-8-21 08:24:42

抓紧时间学习下P大的UDF{:face (303):}
顺便赚个10分

shimingyun 发表于 2015-11-26 00:23:49

谢谢前辈的指点,正遇到软件同事并发执行排队的问题~
页: [1]
查看完整版本: 求助,如何让同一个脚本排队依次运行?【已解决】