找回密码
 加入
搜索
查看: 4168|回复: 4

[效率算法] 求助,如何让同一个脚本排队依次运行?【已解决】

[复制链接]
发表于 2011-8-21 04:23:27 | 显示全部楼层 |阅读模式
本帖最后由 sunafter 于 2011-8-21 08:20 编辑

比如abc.exe,运行前检测有几个正在运行的abc.exe,等前面的都退出了,自身再继续运行?
abc.exe运行时有命令行参数
我自己写了个函数,检测与脚本自身名字相同的进程,返回一个包含进程数量及各自PID的数组
然后将这些进程的PID与当前脚本的@AUTOPID比对,删除脚本自身的PID元素得到一个新数组
再依次等待这个新数组中的每个PID的进程退出,等所有进程都退出后自身再继续运行
感觉思路有点复杂,并且实际应用中经常发生所有进程都不能继续运行的问题
发表于 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)
 楼主| 发表于 2011-8-21 08:19:52 | 显示全部楼层
pusofalse 发表于 2011-8-21 07:27


感谢P大o(∩_∩)o ,虽然偶看不懂,可是拿来套还是会的、、、
 楼主| 发表于 2011-8-21 08:24:42 | 显示全部楼层
抓紧时间学习下P大的UDF
顺便赚个10分
发表于 2015-11-26 00:23:49 | 显示全部楼层
谢谢前辈的指点,正遇到软件同事并发执行排队的问题~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-11 01:19 , Processed in 0.083454 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表