导航链接

36脚本大厅

Edit SideBar

按键精灵调用方法


/////////////////////////////////// 插件初始化示例 ///////////////////////////////////
// 注意:
// 初始化命令以及登陆命令只能调用一次,因此在按键精灵里面调试时(每一次调试相当于重新初始化)看到的结果与实际生成后看到的结果会不一样。
// 也就将自己写好的代码放在实际代码允许执行的部份范围内即可,不需要多大改变。直接生成小精灵后调试效果更佳。
// 否则按键精灵调试本身所带来的注意事项可能会对初步了解按键精灵的作者带来多余的困扰。
// 交流QQ:1210107875
//=========================================关于协助作者加密脚本功能可以实现以下功能=======================================
// 1.可以定义正式登陆后的权限
// 2.可以定义试用期间的权限
// 3.可以控制多少开、以及你想要每个用户单独拥有不同权限的事件都可以实现
// 4.可以为你的用户解除绑定电脑
// 5.可以为你的任意用户续时
// 6.可以封停、解冻任意用户
// 7.可以自己生成任意时长的卡号
//=========================================以下为命令详解,请认真阅读=======================================
//1.初始化及卸载 插件; 此命令只能调用一次。请勿多次重复调用
// 1> 初始化: 把这句放在界面加载事件里面 详情看实例
Call Plugin.sweet.InSweet("Reg")
// 2> 卸载: 把这句放在界面卸载事件里面 详情看实例
Call Plugin.sweet.InSweet("Esc")
//2.注册插件; 登陆后返回的参数是动态加密的,因此返回参数需要配合使用动态解密功能解释参数。
// 参数一: 卡号拥有者作者标记。意思是你可以用此插件来授权你的作品启动权限。 如果已经有自己的加密系统 或 验证系统,将此修值设置为:"Null"
// 参数二: 注册卡号。 如果第一个参数使用的是你的标记,那么只允许使用带有你的标记的卡号注册本软件,来达到控制你的软件使用权。具体需要与 QQ:1210107875 协商如何制定标记。
// 如果第一个参数填的是 "Null" ,这里将纯粹是本插件调用权限注册卡号。
// 将本参数设置为 "Null" 时,将自动调用《36脚本大厅》功能设置里的“第三方软件调用权限卡号”自动注册本插件。
//返回参数详解: 返回参数为3个成员:
//第一位: 整数,1.注册成功 2.试用注册成功 -404.初始化失败(一般为网络问题、或杀毒软件拦截) -13.不是本软件作者的卡号 -14.注册失败,原因多种具体会弹出窗口提示
//第二位: 当 参数一 为定制时,这里返回本注册卡号所拥有的权限控制信息,看后面解释。
//第三位: 如果 第一位 返回的是 1,这里是本卡号到期时间, 如果 第一位 返回的是 2,这里是还剩余的试用次数。
result = Plugin.sweet.InLogin("Null", "Null")
//3.解密注册后返回的结果。 看上面。
Reg_result = Plugin.sweet.InJieMi(result)
//通常可以写作: Reg_result = Plugin.sweet.InJieMi(Plugin.sweet.InLogin("Null", "Null"))
//4.登陆随机校验。
//此功能重点注意:本命令只能在注册成功后大于2秒以上之后调用。在脚本执行过程中安排进去随机校验。如果对加密防破没概念或者不懂的,或者当前软件价值不高的,可以不调用。
//此命令配合动态解密功能返回 1 表示登陆状态,其它数字、字符、或空、垃圾字符都为非法登陆或暴力破解。或被挤下线。
result = Plugin.sweet.InJieMi(Plugin.sweet.InLoginType())
/////////////////////////////////// 登陆游戏帐号调用示例 ///////////////////////////////////
//1.帐号名登陆方法
//参数格式:登陆类型,帐号名,未开启打码直接关闭登陆[是,否],超时时间
//参数一 :1000X600 填:“putong” 500X300 填:“mini”
//参数二 :帐号名,如果有备注帐号名就是备注
//参数三 :未开启打码直接关闭登陆[是,否] 填“是”,如果未开启打码,且登陆当前帐号时需要验证码,会自动跳过,但是可以通过返回参数判断无法登陆原因,填“否”,会弹出输入验证码的输入框
//参数四 :登陆超时时间,是指接口登陆时间,一般 40 秒就行了,不要再改。
// 1> 普通登陆方式(1000X600) 登陆帐号名为“测试帐号”的帐号
login_result = Plugin.sweet.LoadRunName("putong", "xxmd2012", "否", 40)
// 2> 普通登陆方式(500X300) 登陆帐号名为“测试帐号”的帐号
login_result = Plugin.sweet.LoadRunName("mini", "xxmd2012", "否", 40)
//2.分组 + 序号 登陆方法
//参数格式:登陆类型,帐号名,未开启打码直接关闭登陆[是,否],超时时间
//参数一 :1000X600 填:“putong” 500X300 填:“mini”
//参数二 :第几分组,阿位伯数字
//参数三 :第几个号,阿位伯数字
//参数四 :未开启打码直接关闭登陆[是,否] 填“是”,如果未开启打码,且登陆当前帐号时需要验证码,会自动跳过,但是可以通过返回参数判断无法登陆原因,填“否”,会弹出输入验证码的输入框
//参数五 :登陆超时时间,是指接口登陆时间,一般 40 秒就行了,不要再改。
// 1> 普通登陆方式(1000X600) 登陆第 1 小组里的第 2 个帐号
login_result = Plugin.sweet.LoadRunId("putong", 1, 2, "否", 40)
// 2> 普通登陆方式(500X300) 登陆第 1 小组里的第 2 个帐号
login_result = Plugin.sweet.LoadRunId("mini", 1, 2, "否", 40)
TracePrint "login_result = " & login_result
// 以下为返回值以及含义,如果已经登陆的帐号,再次登陆,不会重复登陆,而是直接返回游戏句柄。(相当于与 GetNameHwnd 功能重复了)

If int(login_result) > 0 Then 
    TracePrint Get_zh_Name & "  打开成功"
    //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开成功", LogPath)
Else
    Select Case login_result
    Case "-1"
        //Call Lib.自定义.屏幕显示("插件注册失败,无法正常执行", LogPath)
        MessageBox "插件注册失败,无法正常执行"
        ExitScript 
    Case "-11"
        MessageBox "未授权使用"
        ExitScript 
    Case "-12"
        MessageBox "参数传入错误,请检查是否有非法字符 (针对开发者)"
        ExitScript 
    Case "-2"
        TracePrint "登陆器启动异常"
        //Call Lib.自定义.屏幕显示("登陆器启动异常", LogPath)
    Case "-3"
        TracePrint "未找到指定帐号"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,未找到指定帐号", LogPath)
    Case "-4"
        TracePrint "登陆出错,错误未知"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,错误未知", LogPath)
    Case "-5"
        TracePrint "需要验证码且未开启打码功能"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,需要验证码且未开启打码功能", LogPath)
    Case "-6"
        TracePrint "需要验证码,正在打码中,先返回,可直接执行下一个帐号登陆命令。登陆成功与否另外检查。目的是更快登陆。"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    正在打码...", LogPath)
    Case "-7"
        TracePrint "登陆超时"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,登陆超时", LogPath)
    Case "-8"
        TracePrint "登陆需要验证码,且《36脚本大厅》功能设置中未开启验证码识别功能"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,需要验证码,且未启动打码", LogPath)
    Case "-41"
        TracePrint "登入失败:账户或密码输入错误"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,账户或密码输入错误", LogPath)
    Case "-42"
        TracePrint "登入失败:验证码输入错误"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,验证码输入错误", LogPath)
    Case "-43"
        TracePrint "登入失败:登录过快导致服务器拒绝"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,登录过快导致服务器拒绝", LogPath)
    Case "-44"
        TracePrint "登入失败:帐户被游戏代理锁定"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,帐户被游戏代理锁定", LogPath)
    Case "-45"
        TracePrint "登入失败:帐户存在二级验证保护"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,帐户存在二级验证保护", LogPath)
    Case "-46"
        TracePrint "自动打码失败"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,自动打码失败,检查是否有余额", LogPath)
    Case "-47"
        TracePrint "未找到您所输入的区服信息"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,未找到您所输入的区服信息", LogPath)
    Case "-48"
        TracePrint "检查大区是否在维护?网页登陆是否正常"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,网络无回应,检查游戏服务器是否在维护", LogPath)
    Case "-49"
        TracePrint "帐号数组越下标,登陆器问题"
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,数组越下标,参数错误", LogPath)
    Case Else
        TracePrint "出现未知错误...返回值:" & login_result
        //Call Lib.自定义.屏幕显示(Get_zh_Name & "    打开失败,出现未知错误...返回值:" & login_result, LogPath)
    End Select
End If

/////////////////////////////////// 其它功能 ///////////////////////////////////
//取已经登陆的游戏中,指定帐号游戏句柄
Result = Plugin.sweet.GetNameHwnd("测试帐号")
TracePrint Result
//取已经登陆的游戏中,所有游戏窗口句柄

Result = Plugin.sweet.GetNameHwnd("测试帐号")
StrTmpArr = Split(Result, ",")
If UBound(StrTmpArr) >= 0 Then
    For i = 0 To UBound(StrTmpArr)
        StrTmpArrII = Split(StrTmpArr(i), "<#>")  //分割单个游戏窗口信息
        TracePrint "第 " & i & " 个窗口 帐号: " & StrTmpArrII(0) & "  游戏句柄:" & StrTmpArrII(1)
    Next
End If

//关闭指定游戏窗口; 参数:游戏句柄,或要关闭的窗口句柄都可以。
Call Plugin.sweet.CloseGameWin(Hwnd)
//其它次要命令自己看插件字义使用。更多功能需要有时间后再开一一开发。
//以后将会集成直接对弹弹堂操作的命令,如:读取角度,读取房间号,发射力度,进入指定房间等等使用非常频繁的功能来分摊开发者的压力。

//如果以上看起上眼花,去掉注释后,可以复制新建脚本测试:

Event Form1.Load
    Call Plugin.sweet.InSweet("Reg")
End Event
Event Form1.UnLoad
    Call Plugin.sweet.InSweet("Esc")
End Event
reg_result = Plugin.sweet.InJieMi(Plugin.sweet.InLogin("Null", "Null"))
reg_array = Split(reg_result, "|")
If UBound(reg_array) > 1 Then 
    If int(reg_array(0)) = 1 Then 
        TracePrint "正式 注册成功,过期时间:" & reg_array(2) & "本注册卡号所附带的信息为:" & reg_array(1)
    ElseIf int(reg_array(0)) = 2 Then
        TracePrint "试用 注册成功,剩余试用次数:" & reg_array(2)
    Else 
        TracePrint "各种失败可能自由判断"
    End If
Else 
    TracePrint "非法调用,或调用方法不对"
End If
login_result = Plugin.sweet.LoadRunName("putong", "xxmd2012", "否", 40)
TracePrint "login_result = " & login_result
If int(login_result) > 0 Then 
    TracePrint Get_zh_Name & "  打开成功"
Else
    Select Case login_result
    Case "-1"
        MessageBox "插件注册失败,无法正常执行"
        ExitScript 
    Case "-11"
        MessageBox "未授权使用"
        ExitScript 
    Case "-12"
        MessageBox "参数传入错误,请检查是否有非法字符 (针对开发者)"
        ExitScript 
    Case "-2"
        TracePrint "登陆器启动异常"
    Case "-3"
        TracePrint "未找到指定帐号"
    Case "-4"
        TracePrint "登陆出错,错误未知"
    Case "-5"
        TracePrint "需要验证码且未开启打码功能"
    Case "-7"
        TracePrint "登陆超时"
    Case "-41"
        TracePrint "登入失败:账户或密码输入错误"
    Case "-42"
        TracePrint "登入失败:验证码输入错误"
    Case "-43"
        TracePrint "登入失败:登录过快导致服务器拒绝"
    Case "-44"
        TracePrint "登入失败:帐户被游戏代理锁定"
    Case "-45"
        TracePrint "登入失败:帐户存在二级验证保护"
    Case "-46"
        TracePrint "自动打码失败"
    Case "-47"
        TracePrint "未找到您所输入的区服信息"
    Case "-48"
        TracePrint "检查大区是否在维护?网页登陆是否正常"
    Case "-49"
        TracePrint "帐号数组越下标,登陆器问题"
    Case Else
        TracePrint "出现未知错误...返回值:" & login_result
    End Select
End If
Delay 6000
MessageBox "点击确定关闭当前登陆游戏窗口"
Call Plugin.sweet.CloseGameWin(login_result)


[点击下载] 按键精灵调用实例

//另外提供一段免费获取【36脚本大厅】当前已登陆游戏窗口的游戏名与对应的游戏句柄示例,命令使用按键精灵自带插件

HwndEx_Arr = Split(Plugin.Window.SearchEx("36JBCOM_Browser",0,1), "|")
For i = 0 To UBound(HwndEx_Arr)
    If Int(HwndEx_Arr(i)) >= 0 Then 
        sText = Plugin.Window.GetText(HwndEx_Arr(i))
        sText_Arr = Split(sText, "|")
        If UBound(sText_Arr) = 5 Then 
            TracePrint "帐号=" & sText_Arr(2)
            TracePrint "句柄=" & sText_Arr(3)
        End If
    End If
Next