开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 9763|回复: 4
收起左侧

[已解决] 易语言 使用大漠插件后台多线程问题

 关闭 [复制链接]
结帖率:100% (15/15)
发表于 2014-4-5 18:50:33 | 显示全部楼层 |阅读模式   河北省邯郸市
5精币
.版本 2
.支持库 大漠插件中文版
.支持库 eAPI
.支持库 spec
.支持库 EThread
.程序集 窗口程序集1
.程序集变量 大漠, 大漠
.子程序 __启动窗口_创建完毕

.如果真 (文件是否存在 (取运行目录 () + “\上次设置.ini”))
    模拟器路径.内容 = 到文本 (读配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “模拟器路径”, ))
    官方包路径.内容 = 到文本 (读配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “官方包路径”, ))
    TX包路径.内容 = 到文本 (读配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “TX包路径”, ))
    游戏个数.内容 = 到文本 (读配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “游戏个数”, ))
    大区名字.内容 = 到文本 (读配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “大区名字”, ))
    组合框1.现行选中项 = 到整数 (读配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “组合框1”, ))
    账号路径.内容 = 到文本 (读配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “账号路径”, ))
.如果真结束
设置进度.位置 = 0
登录提示.清空 ()
.子程序 _BUG反馈_被单击
打开指定网址 (“http://user.qzone.qq.com/1756108001/334”)
.子程序 _组合框1_列表项被选择
写配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “账号路径”, 到文本 (组合框1.现行选中项))
.如果真 (组合框1.现行选中项 = 0)
    登录提示.删除项目 (0)
    登录提示.加入项目 (“你选择的版本是  ” + 组合框1.内容, 0)
    设置进度.位置 = 1
.如果真结束
.如果真 (组合框1.现行选中项 = 1)
    信息框 (“未采集信息”, 0, )
.如果真结束

.子程序 _账号路径_内容被改变
写配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “账号路径”, 账号路径.内容)
设置进度.位置 = 5
登录提示.删除项目 (6)
登录提示.加入项目 (“你填写的账号路径是  ” + 账号路径.内容, 6)
.子程序 _大区名字_内容被改变
写配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “大区名字”, 大区名字.内容)
设置进度.位置 = 2
登录提示.删除项目 (1)
登录提示.加入项目 (“你填写的大区是  ” + 大区名字.内容, 1)
.子程序 _TX包路径_内容被改变
写配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “TX包路径”, TX包路径.内容)
设置进度.位置 = 3
登录提示.删除项目 (2)
登录提示.加入项目 (“你填写的TX包路径是  ” + TX包路径.内容, 2)
.子程序 _官方包路径_内容被改变
写配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “官方包路径”, 官方包路径.内容)
设置进度.位置 = 3
登录提示.删除项目 (3)
登录提示.加入项目 (“你填写的官方版路径是  ” + 官方包路径.内容, 3)
.子程序 _模拟器路径_内容被改变
写配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “模拟器路径”, 模拟器路径.内容)
设置进度.位置 = 4
登录提示.删除项目 (4)
登录提示.加入项目 (“你填写的模拟器路径是  ” + 模拟器路径.内容, 4)
.子程序 _游戏个数_内容被改变
写配置项 (取运行目录 () + “\上次设置.ini”, “配置”, “游戏个数”, 游戏个数.内容)
设置进度.位置 = 5
登录提示.删除项目 (5)
登录提示.加入项目 (“你填写次数是  ” + 游戏个数.内容, 5)
.子程序 _开启_被单击
.局部变量 游戏包, 文本型
.局部变量 打酱油窗口, 文本型
.局部变量 分解后的窗口, 文本型, , "0"
.局部变量 i, 整数型
.局部变量 欲写到内存的数值, 字节集, , "0"
.局部变量 画面窗口, 整数型
设置进度.位置 = 6
.如果真 (组合框1.现行选中项 = 0)
    游戏包 = 官方包路径.内容
.如果真结束
.如果真 (组合框1.现行选中项 = 1)
    游戏包 = TX包路径.内容
.如果真结束
.计次循环首 (到整数 (游戏个数.内容), )
    运行 (模拟器路径.内容 + “\KEmulator v1.0.0” + “ ” + 模拟器路径.内容 + “\” + 游戏包, 假, 2)  ' 运行模拟器到指定次数
    大漠.后台_降低CPU占用 (50)
    延时 (2000)
.计次循环尾 ()
窗口排序 ()
延时 (500)
打酱油窗口 = 大漠.窗口_枚举条件窗口 (0, “蜗牛大漠”, “”, 1 + 4 + 8 + 16)  ' 蜗牛大漠 是模糊搜索
调试输出 (打酱油窗口)
分解后的窗口 = 分割文本 (打酱油窗口, “,”, )
.计次循环首 (取数组成员数 (分解后的窗口), i)
    画面窗口 = 大漠.窗口_取子窗口 (到整数 (分解后的窗口 ), “SWT_Window0”, “”)
    调试输出 (画面窗口)
    .如果真 (画面窗口 ≠ 0)
        延时 (800)
        启动线程 (&登陆, 画面窗口, )
        延时 (500)
    .如果真结束
    延时 (500)
.计次循环尾 ()
.子程序 窗口排序
.局部变量 hwnds, 文本型
.局部变量 hw_sp, 文本型, , "0"
.局部变量 i, 整数型
延时 (10000)  ' 等待窗口完全打开
hwnds = 大漠.窗口_枚举条件窗口 (0, “KEmulator v1.0.0”, “”, 1 + 4 + 8 + 16)
hw_sp = 分割文本 (hwnds, “,”, )
.计次循环首 (取数组成员数 (hw_sp), i)
    延时 (200)
    大漠.窗口_移动到指定位置 (到整数 (hw_sp ), (i - 1) × 150, 0)
    延时 (200)
    大漠.窗口_设置窗口标题 (到整数 (hw_sp ), “蜗牛大漠  第” + 到文本 (i) + “个窗口”)
    延时 (200)
.计次循环尾 ()
.子程序 登陆
.参数 画面窗口, 整数型
.局部变量 登陆界面, 整数型
.局部变量 intX, 整数型
.局部变量 intY, 整数型
.局部变量 帐号, 文本型
.局部变量 u, 整数型
.局部变量 d, 整数型
.局部变量 密码, 文本型
.局部变量 sfdl, 文本型
.局部变量 文字, 文本型
.局部变量 文字坐标, 文本型, , "0"
.局部变量 dm_d, 整数型
.局部变量 dm_ret, 整数型
调试输出 (“线程启动了”)
调试输出 (到文本 (画面窗口))
大漠.创建 ()
大漠.大漠_设置全局路径 (取运行目录 () + “\sijie\acx”)  ' 设置全局目录
大漠.文字_设置字库文件 (0, “dq_zk.txt”)  ' 设置字库
大漠.后台_绑定窗口 (画面窗口, “gdi”, “windows”, “windows”, 0)
大漠.后台_降低CPU占用 (50)
.判断循环首 (d = 0)
    登陆界面 = 大漠.图色_查找图片 (9, 306, 311, 727, “sj_dl.bmp|sj_ks.bmp”, “000000”, 1, 0, intX, intY)
    .如果真 (登陆界面 = 0)
        延时 (200)
        大漠.键鼠_鼠标移动 (intX, intY)
        延时 (100)
        大漠.键鼠_按下鼠标左键 ()
        调试输出 (“找到”)
        跳出循环 ()
    .如果真结束
    .如果真 (登陆界面 = 1)
        延时 (100)
        大漠.键鼠_鼠标移动 (202, 269)
        延时 (100)
        大漠.键鼠_按下鼠标左键 ()
        延时 (500)
        大漠.键鼠_鼠标移动 (50, 47)
        延时 (200)
        大漠.键鼠_按下鼠标左键 ()
        跳出循环 ()
    .如果真结束
.判断循环尾 ()
.计次循环首 (100, )
    帐号 = 大漠.ReadIni (“网游账号” + 到文本 (u), “账号”, 账号路径.内容)
    密码 = 大漠.ReadIni (“网游账号” + 到文本 (u), “密码”, 账号路径.内容)
    sfdl = 大漠.ReadIni (“网游账号” + 到文本 (u), “是否登陆”, 账号路径.内容)
    大漠.WriteIni (“网游账号” + 到文本 (u), “是否登陆”, “否”, 账号路径.内容)
    u = u + 1
    .如果真 (u = 99)
        大漠.WriteIni (“网游账号” + 到文本 (u), “是否登陆”, “是”, 账号路径.内容)
    .如果真结束
    .如果真 (sfdl = “是”)
        跳出循环 ()
    .如果真结束
.计次循环尾 ()
.计次循环首 (14, )
    大漠.键鼠_按下某键 (39)
    延时 (30)
    大漠.键鼠_按下某键 (8)
    延时 (30)
.计次循环尾 ()
延时 (500)
大漠.窗口_发送文本数据 (画面窗口, 帐号)
延时 (200)
大漠.键鼠_鼠标移动 (153, 88)
延时 (200)
大漠.键鼠_按下鼠标左键 ()
延时 (1000)
.计次循环首 (12, )
    大漠.键鼠_按下某键 (39)
    大漠.delay (30)
    大漠.键鼠_按下某键 (8)
    大漠.delay (30)
.计次循环尾 ()
延时 (300)
大漠.窗口_发送文本数据 (画面窗口, 密码)
延时 (300)
大漠.键鼠_按下某键 (112)
.如果真 (登陆界面 = 1)
    .判断循环首 (d = 0)
        dm_d = 大漠.图色_查找图片 (278, 417, 344, 460, “sj_qh.bmp”, “000000”, 1, 0, intX, intY)
        .如果真 (dm_d ≥ 0)
            大漠.键鼠_鼠标移动 (intX, intY)
            延迟 (200)
            大漠.键鼠_按下鼠标左键 ()
            调试输出 (“找到切换”)
            跳出循环 ()
        .如果真结束
        延迟 (200)
        调试输出 (“没有找到切换”)
    .判断循环尾 ()
.如果真结束
延迟 (1000)
.如果真 (大漠.图色_查找图片 (7, 207, 352, 429, “dl_cw.bmp”, “000000”, 1, 0, intX, intY) ≠ -1)
    dm_ret = 大漠.图色_抓取图像_24位位图 (0, 0, 364, 662, 取运行目录 () + “\错误” + “\ ” + 帐号 + “.bmp”)
    调试输出 (取运行目录 () + “\错误” + “\ ” + 帐号 + “.bmp”)
    写配置项 (取运行目录 () + “\错误\错误帐号.ini”, “错误的帐号”, “错误的帐号是”, 帐号)
.如果真结束
.判断循环首 (d = 0)
    文字 = 大漠.文字_查找字符串坐标_高级 (7, 46, 347, 528, 大区名字.内容, “ffffff-000000”, 1)
    文字坐标 = 分割文本 (文字, “|”, )
    .如果真 (到整数 (文字坐标 [1]) ≥ 0)
        大漠.键鼠_鼠标移动 (到整数 (文字坐标 [2]), 到整数 (文字坐标 [1]))
        大漠.键鼠_按下鼠标左键 ()
        跳出循环 ()
    .如果真结束
    大漠.键鼠_鼠标移动 (334, 297)
    延迟 (100)
    大漠.键鼠_按住鼠标左键 ()
    延迟 (500)
    大漠.键鼠_鼠标移动 (334, 400)
    延迟 (200)
    大漠.键鼠_放开鼠标左键 ()
    调试输出 (“没有找到大区”)
.判断循环尾 ()

上面是源码   现在问题是   多线程开启后   只对最后一个窗口操作

最佳答案

查看完整内容

我观楼桑代码 全程只使用 一个变量 .程序集变量 大漠, 大漠 而 大漠多开的原则是 一个大漠 针对一个窗口 因此 你的用法始终只能保其中一个窗口有效 解决方法 .程序集变量 大漠, 大漠 设置成数组 多少开就设置多少个数组成员, 调用的时候 通过 第一个窗口 大漠[1].XXXX 第二个窗口 大漠[2].XXXX --------------------------以上是数组的调用方法.------------------------------- 下面的写法比较复杂,我就 ...

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (2/2)
发表于 2014-4-5 18:50:34 | 显示全部楼层   湖南省湘西土家族苗族自治州
我观楼桑代码 全程只使用 一个变量  .程序集变量 大漠, 大漠

而 大漠多开的原则是  一个大漠 针对一个窗口 因此 你的用法始终只能保其中一个窗口有效

解决方法

.程序集变量 大漠, 大漠 设置成数组 多少开就设置多少个数组成员,

调用的时候 通过
第一个窗口   大漠[1].XXXX
第二个窗口   大漠[2].XXXX

--------------------------以上是数组的调用方法.-------------------------------
下面的写法比较复杂,我就一一说出来了.

另外吐槽一下..发的代码不要一大片一大片的....别人看着都费劲..只挑重点 以及 错误的提示 说明. 简短精炼 说明问题所在.

同时应以 无下划线,删除线,粗体,斜体 10-12号字体为佳.


评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:25% (7/28)

签到天数: 4 天

发表于 2014-4-5 19:05:31 | 显示全部楼层   上海市上海市
多窗口多对象才可以 代码无法直视
回复

使用道具 举报

结帖率:100% (15/15)

签到天数: 12 天

 楼主| 发表于 2014-4-6 01:52:20 | 显示全部楼层   河北省邯郸市
多谢2楼  回去试试  这几天卡在这里了   编译成按键可以用   刚刚接触易语言不久  新手不易啊  我快把论坛翻遍了  
回复

使用道具 举报

发表于 2014-4-6 08:31:26 | 显示全部楼层   吉林省长春市
晕了,待我好好看看...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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