主题:  怎样使我制作的程序在运行时只能同一时间运行一个程序

spartutu

职务:普通成员
等级:1
金币:0.0
发贴:82
#12003/10/27 21:56:44
就是说如果我制作的AW程序已经在运行,再双击此程序图标就创建不了新的进程。就像瑞星杀毒程序那样,同时只能有一个进程,不能同时打开两个瑞星杀毒程序



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
#22003/10/27 23:21:36
[问题]避免程序被多次同时执行的方案
[解答]
避免重复执行的脚本:
在程序流程开始处放置一计算图标并写入一下代码:

方法一:
在程序流程最开始处添加计算脚本(假设程序标题为“魔岩工作室”):
Result:=FindWindow("APWMainClass","魔岩工作室")
if Result<>0 then Quit(0)
SetWindowText(WindowHandle,"魔岩工作室")


方法二:(网友kwwx)

利用budapi中的bawindowlist函数。
返回值为目前运行的所有符合要求的程序的句柄,每个句柄之间用换行符分开。如果返回值多于一行,既意味着发现了一个以上的程序实例在运行,当前程序便退出。
在程序中写:
win_list:=bawindowList("APWMainClass","yourname")
if LineCount(win_list)>1 then
Quit(0)
end if



在常见问题里有答案啊。..以前讨论过的了。.