主题:  如何控制打包后的文件同时只运行一个?

愁眉不展

职务:普通成员
等级:1
金币:0.0
发贴:114
#12001/3/2 15:38:45
对于一些疯狂的使用者,SingleInstance=1好象无效,哪位有更好的方法?



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#22001/3/3 18:36:28
on preparemovie
global z_SingleInstance
set txts=getnettext("SingleInstance.txt")
put nettextresult(txts) into z_SingleInstance
if z_SingleInstance=1 then
quit
else
nothing
end if
end preparemovie
on startmovie
fileIOz = xtra("FileIO").new()
fileIOz.openFile("SingleInstance.txt", 0)
fileIOz.writeString("1")
fileIOz.closeFile()
end startmovie
on stopmovie
global z_SingleInstance
if z_SingleInstance=0 then
fileIOz = xtra("FileIO").new()
fileIOz.openFile("SingleInstance.txt", 0)
fileIOz.writeString("0")
fileIOz.closeFile()
else
nothing
end if
end stopmovie



donlee

职务:普通成员
等级:1
金币:1.0
发贴:271
#32001/3/4 9:13:14
54zq兄方法需要仔细测试,可能存在下面的问题:
1、用在ini文件中设置SingleInstance的方法其实起作用了,只是这是应用程序级而非系统级控制,每多次启动projector,它都是先执行,发现存在已经启动的副本则退出;用54zq兄写文件的方法(我见过在5.0时期有个外国朋友用类似的方法,在哪里看到的记不太清楚了),也是在程序启动后再判断,或继续或退出,效率是否会比ini方式更高呢?
2、如果程序启动后非正常退出(这并不稀奇),那么........!



D计划-混沌

职务:管理员
等级:6
金币:15.2
发贴:3528
#42001/3/4 11:30:46
donlee兄说得极是
SingleInstance=1我用时一直是蛮管用的,因不知不展兄说的疯狂到了何种程度
所以写了上面的东东,当然没有用ini好了 ,只是确保副本退出,是要和ini一起使用的
而且非正常关机后可能会导致exe一次也开不了,所以最好设定一个时间代替on stopmovie
这样的两重保护我想总差不多了