当前位置:   article > 正文

雷电模拟器中控实现,直通&源码

雷电模拟器中控

目录

前言

开发

需求

初始环境

UI搭建

功能实现


前言

        本篇为易语言雷电模拟器中控项目实现操作,一般用于:脚本开发多线程模拟操作等起始模板框架,使用易语言原因为其前后端一体化,对于脚本开发而言更为方便。


开发

需求

        以下为雷电模拟器中控项目的需求:

  1. 一键启动、关闭所有模拟器以及单个模拟器的操作
  2. 前端界面展示所有模拟器信息,包含:模拟器名称、顶层句柄、绑定句柄

初始环境

        代码编写环境如下:易语言5.9加密狗版、精益模块、雷电模块、乐玩模块,接下来新建Windows窗口程序开始编写代码。


UI搭建

       现在进行简单的UI页面搭建,UI页面如下:

  • 超级列表框_窗口信息:展示序号、模拟器名称、顶层、绑定句柄、信息
  • 按钮_一键启动:点击按钮后启动编辑框_启动模拟器对应数量的模拟器,间隔时间为编辑框_启动模拟器间隔时间
  • 按钮_一键关闭:一键关闭所有正在运行的模拟器
  • 按钮_刷新:刷新超级列表框_窗口信息的信息
  • 编辑框_启动模拟器数量:输入整数型数据,默认为3
  • 编辑框_启动模拟器间隔时间:输入整数型数据,默认为5
  • 编辑框_模拟器起始路径:输入文本型数据,内容为雷电模拟器起始路径,默认为:D:\雷电模拟器\leidian\LDPlayer9\


功能实现

        首先针对需求一:一键启动、关闭所有模拟器以及单个模拟器的操作进行功能实现,相关UI如下:

  • 编辑框_模拟器起始路径:用于读取模拟器信息,通过雷电模块相关命令实现
  • 按钮_一键启动:点击按钮后执行一键启动模拟器命令
  • 按钮_一键启动:点击按钮后执行一键关闭模拟器命令
  • 按钮_选中启动:选中对应模拟器,点击按钮后启动该模拟器
  • 按钮_选中关闭:选中对应模拟器,点击按钮后关闭该模拟器
  • 编辑框_启动模拟器间隔时间:如名

        针对需求二:前端界面展示所有模拟器信息,包含:模拟器名称、顶层句柄、绑定句柄,我们通过雷电相关模块将获取的返回值进行操作,相关UI如下:

  • 超级列表框_窗口信息:展示序号、模拟器名称、顶层、绑定句柄、信息

        以下为实现代码:

        全局变量

  1. .版本 2
  2. .全局变量 雷电, 雷电dnconsole操作

        窗口程序集_启动窗口

  1. .版本 2
  2. .程序集 窗口程序集_启动窗口
  3. .子程序 __启动窗口_创建完毕
  4. ' 雷电模拟器路径
  5. 雷电.置模拟器目录 (_启动窗口.编辑框_模拟器路径.内容)
  6. .子程序 _按钮_全部启动_被单击
  7. ' 一键启动模拟器,并刷新界面信息
  8. 模拟器_一键启动 ()
  9. .子程序 _按钮_全部关闭_被单击
  10. ' 一键关闭模拟器,并刷新界面信息
  11. 模拟器_一键关闭 ()
  12. .子程序 _按钮_选中启动_被单击
  13. ' 启动选中模拟器,并刷新界面信息
  14. 模拟器_选中启动 ()
  15. .子程序 _按钮_选中关闭_被单击
  16. ' 关闭选中模拟器,并刷新界面信息
  17. 模拟器_选中关闭 ()
  18. .子程序 _按钮_刷新_被单击
  19. ' 刷新窗口信息
  20. 模拟器_取模拟器信息 ()

        功能_模拟器程序集

  1. .版本 2
  2. .支持库 iext
  3. .程序集 功能_模拟器
  4. .子程序 模拟器_取模拟器信息, , 公开
  5. .局部变量 局_数据, 文本型, , "0"
  6. .局部变量 i, 整数型
  7. .局部变量 局_单分割, 文本型, , "0"
  8. ' 清楚当前窗口信息
  9. _启动窗口.超级列表框_窗口信息.全部删除 ()
  10. ' 取全部模拟器数据
  11. 雷电.取全部模拟器 (局_数据)
  12. ' 展示模拟器信息
  13. .计次循环首 (取数组成员数 (局_数据), i)
  14. 局_单分割 = 分割文本 (局_数据 [i], “,”, )
  15. _启动窗口.超级列表框_窗口信息.插入表项 (, , , , , )
  16. _启动窗口.超级列表框_窗口信息.置标题 (i - 1, 0, 到文本 (i))
  17. _启动窗口.超级列表框_窗口信息.置标题 (i - 1, 1, 到文本 (局_单分割 [2]))
  18. _启动窗口.超级列表框_窗口信息.置标题 (i - 1, 2, 到文本 (局_单分割 [3]))
  19. _启动窗口.超级列表框_窗口信息.置标题 (i - 1, 3, 到文本 (局_单分割 [4]))
  20. .如果真 (到整数 (局_单分割 [3]) ≠ 0)
  21. _启动窗口.超级列表框_窗口信息.置标题 (i - 1, 4, “启动”)
  22. .如果真结束
  23. .如果真 (到整数 (局_单分割 [3]) = 0)
  24. _启动窗口.超级列表框_窗口信息.置标题 (i - 1, 4, “未启动”)
  25. .如果真结束
  26. .计次循环尾 ()
  27. .子程序 模拟器_一键启动, , 公开
  28. .局部变量 i, 整数型
  29. .局部变量 模拟器_数量, 整数型
  30. .局部变量 间隔时间, 整数型
  31. ' 获取要启动模拟器的数量和间隔时间
  32. 模拟器_数量 = 到整数 (_启动窗口.编辑框_模拟器启动数量.内容)
  33. 间隔时间 = 到整数 (_启动窗口.编辑框_模拟器启动间隔时间.内容) × 1000
  34. ' 一键启动模拟器,并刷新窗口信息
  35. .计次循环首 (模拟器_数量, i)
  36. 雷电.启动模拟器 (i - 1, )
  37. 程序_延时 (间隔时间, )
  38. .计次循环尾 ()
  39. 程序_延时 (5000, )
  40. ' 刷新窗口信息
  41. 模拟器_取模拟器信息 ()
  42. .子程序 模拟器_一键关闭
  43. ' 一键关闭模拟器,并刷新窗口信息
  44. 雷电.关闭所有模拟器 ()
  45. 程序_延时 (5000, )
  46. ' 刷新窗口信息
  47. 模拟器_取模拟器信息 ()
  48. .子程序 模拟器_选中启动
  49. .局部变量 索引, 整数型
  50. ' 启动模拟器
  51. 索引 = _启动窗口.超级列表框_窗口信息.现行选中项
  52. 雷电.启动模拟器 (索引, )
  53. 程序_延时 (5000, )
  54. ' 刷新窗口信息
  55. 模拟器_取模拟器信息 ()
  56. .子程序 模拟器_选中关闭
  57. .局部变量 索引, 整数型
  58. ' 关闭模拟器
  59. 索引 = _启动窗口.超级列表框_窗口信息.现行选中项
  60. 雷电.关闭模拟器 (索引)
  61. 程序_延时 (5000, )
  62. ' 刷新窗口信息
  63. 模拟器_取模拟器信息 ()

效果演示

        上述就是针对雷电模拟器中控实现的代码了,最后看看成品效果:

        下图为启动程序,刷新窗口信息后的效果图:

        下图为点击一键启动后的效果图:

          其他按钮的功能就不继续演示了,感兴趣可以复制粘贴,获取相关模块进行操作

注意点

        最后针对几个疑问点进行解答:

  • 各个模块发挥的作用?
    • 乐玩模块在改处实际上并未使用
    • 精益模块只进行了一些延时等简单功能
    • 雷电模块是本项目最重要的模块了,用于读取模拟器、操作模拟器等等功能
  • 顶层句柄和绑定句柄是什么意思?有什么区别?
    • 顶层句柄:其实就是电脑打开雷电模拟器,这个雷电模拟器的窗口句柄
    • 绑定句柄:在雷电模拟器内,其实还有一个内置窗口,一般的操作也是在这个窗口执行,所以叫做绑定句柄,绑定句柄也就是这个窗口的句柄
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/911240
推荐阅读
相关标签
  

闽ICP备14008679号