//允许启动次数,自行修改
允许脚本启动次数 = 5
'定义环境变量
Dimenv 是否启动, 启动次数, 启动的游戏窗口句柄, 本次启动窗口
Dim 本次启动, 启动窗口, 游戏原来标题, 绑定了窗口, 本次启动次数
本次启动 = "启动不成功"
If 是否启动 <> "已启动" Then
是否启动 = "已启动"
启动窗口 = Plugin.Window.Foreground()
本次启动窗口 = 启动窗口
游戏原来标题 = Plugin.Window.GetText(启动窗口)
启动的游戏窗口句柄 = 启动窗口
启动次数 = 1
本次启动次数 = 启动次数
Call Plugin.Window.SetText(启动窗口, "第" & 启动次数 & "次启动,句柄:" & 启动窗口)
本次启动 = "启动成功"
Else
If 启动次数 >= 允许脚本启动次数 Then
MsgBox "已经启动了" & 允许脚本启动次数 & "次脚本,不能再启动"
ExitScript
Else
'记录已启动窗口句柄,防止重复在一个游戏窗口启动
启动窗口 = Plugin.Window.Foreground()
游戏原来标题 = Plugin.Window.GetText(启动窗口)
If InStr(启动的游戏窗口句柄, 启动窗口) > 0 Then
MsgBox "该游戏窗口已经启动过脚本,请不要重复在一个游戏窗口启动"
ExitScript
Else
本次启动窗口 = 启动窗口
启动的游戏窗口句柄 = 启动的游戏窗口句柄 & "|" & 启动窗口
本次启动 = "启动成功"
启动次数 = 启动次数 + 1
本次启动次数 = 启动次数
Call Plugin.Window.SetText(启动窗口, "第" & 启动次数 & "次启动,句柄:" & 启动窗口)
End If
End If
End If
'启动子线程单停检测是否按了停止键
BeginThread 单停(本次启动窗口)
'〓〓〓〓↑以上加入到脚本的最前面〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
'〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓一下为脚本代码〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
While 1
Call Plugin.Bkgnd.SendString(启动窗口, "内容")
Delay 500
Wend
'〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓下面的放脚本最后面就可以〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
'单停子线程
Sub 单停(要停止窗口句柄)
'设置停止键码,我这里使用的是END键,可以自己修改为别的键码
停止按键码 = 35
While 1
'检测上次按的键为停止键,并且活动窗口为本次启动的窗口,则停止脚本
If GetLastKey() = 停止按键码 and Plugin.Window.Foreground() = 要停止窗口句柄 Then ExitScript
'检测间隔,根据需要修改
Delay 1000
Wend
End Sub
'停止事件子程序OnScriptExit增加和减少多开次数
Sub OnScriptExit()
'加入停止延迟防止多开一次停止全部时启动次数计算错误
Delay 10 * 本次启动次数
If 本次启动 = "启动成功" Then
启动次数 = 启动次数 - 1
If 启动次数 = 0 Then
是否启动 = "未启动"
启动的游戏窗口句柄 = ""
Else
启动的游戏窗口句柄 = Replace(启动的游戏窗口句柄, 启动窗口 & "|", "")
启动的游戏窗口句柄 = Replace(启动的游戏窗口句柄, "|" & 启动窗口, "")
End If
'判断窗口是否存在
sWindow = Plugin.Window.IsWindow(启动窗口)
If sWindow = 1 Then
Call Plugin.Window.SetText(启动窗口, 游戏原来标题)
End If
End If
End Sub