易语言利用大漠插件实现多窗口多线程单控脚本,界面有信息获取,启动任务,停止任务,全部停止任务4个按钮,1个列表框。1、点击“获取信息”按钮就遍历所有游戏窗口,将得到的窗口句柄,窗口标题,线程ID 传递到列表框里。2、先选中列表框里的某一行,再点击“启动任务”按钮,则绑定这一行的对应窗口句柄,然后后台模拟按键操作。


# 易语言大漠插件多窗口多线程单控脚本实现 下面是一个完整的易语言脚本示例,使用大漠插件实现多窗口多线程单控功能: ```e .版本 2 .程序集 窗口程序集_启动窗口 .程序集变量 大漠, 对象 .程序集变量 线程句柄数组, 整数型, , "0" .程序集变量 线程ID数组, 整数型, , "0" .程序集变量 绑定句柄数组, 整数型, , "0" .程序集变量 线程运行标志, 逻辑型, , "0" .子程序 __启动窗口_创建完毕 大漠.创建 ("dm.dmsoft", ) 如果 (大漠.是否为空 () = 真) 信息框 ("大漠插件注册失败,请先注册大漠插件!", 0, , ) 结束 () 结束如果 大漠.SetPath (取运行目录 ()) 大漠.SetDict (0, "字库.txt") .子程序 _按钮_获取信息_被单击 变量 窗口句柄, 整数型 变量 窗口, 文本型 变量 进程ID, 整数型 变量 线程ID, 整数型 变量 索引, 整数型 列表框1.清空 () 清除数组 (线程句柄数组) 清除数组 (线程ID数组) 清除数组 (绑定句柄数组) 清除数组 (线程运行标志) 窗口句柄 = 大漠.EnumWindow (0, "", "", 1 + 2 + 4 + 8) .判断循环首 (窗口句柄 ≠ 0) 窗口 = 大漠.GetWindowTitle (窗口句柄) 进程ID = 大漠.GetWindowProcessId (窗口句柄) 线程ID = 大漠.GetWindowThreadProcessId (窗口句柄, 进程ID) 索引 = 列表框1.加入项目 (到文本 (窗口句柄) + " | " + 窗口 + " | " + 到文本 (线程ID)) 加入成员 (线程句柄数组, 窗口句柄) 加入成员 (线程ID数组, 线程ID) 加入成员 (绑定句柄数组, 0) 加入成员 (线程运行标志, 假) 窗口句柄 = 大漠.EnumWindow (窗口句柄, "", "", 1 + 2 + 4 + 8) .判断循环尾 () .子程序 _按钮_启动任务_被单击 变量 选中索引, 整数型 变量 线程句柄, 整数型 变量 线程ID, 整数型 选中索引 = 列表框1.现行选中项 () 如果 (选中索引 = -1) 信息框 ("请先在列表框中选择一个窗口!", 0, , ) 返回 () 结束如果 如果 (线程运行标志 [选中索引 + 1] = 真) 信息框 ("该窗口任务已在运行中!", 0, , ) 返回 () 结束如果 线程句柄 = 线程句柄数组 [选中索引 + 1] 线程ID = 线程ID数组 [选中索引 + 1] ' 绑定窗口 绑定句柄数组 [选中索引 + 1] = 大漠.BindWindow (线程句柄, "dx2", "windows3", "windows", 0) 如果 (绑定句柄数组 [选中索引 + 1] = 0) 信息框 ("窗口绑定失败!", 0, , ) 返回 () 结束如果 ' 创建线程执行任务 线程运行标志 [选中索引 + 1] = 真 启动线程 (&执行任务, 选中索引, ) .子程序 执行任务 参数 索引, 整数型 变量 线程句柄, 整数型 线程句柄 = 线程句柄数组 [索引 + 1] ' 这里写具体的后台操作代码 .判断循环首 (线程运行标志 [索引 + 1] = 真) ' 示例:模拟按键操作 大漠.KeyPress (49) ' 按下1键 延时 (500) 大漠.KeyPress (50) ' 按下2键 延时 (500) 大漠.KeyPress (51) ' 按下3键 延时 (500) .判断循环尾 () ' 任务结束,解绑窗口 大漠.UnBindWindow () .子程序 _按钮_停止任务_被单击 变量 选中索引, 整数型 选中索引 = 列表框1.现行选中项 () 如果 (选中索引 = -1) 信息框 ("请先在列表框中选择一个窗口!", 0, , ) 返回 () 结束如果 如果 (线程运行标志 [选中索引 + 1] = 假) 信息框 ("该窗口任务未在运行中!", 0, , ) 返回 () 结束如果 线程运行标志 [选中索引 + 1] = 假 .子程序 _按钮_全部停止_被单击 变量 i, 整数型 .计次循环首 (取数组成员数 (线程运行标志), i) 线程运行标志 [i] = 假 .计次循环尾 () 信息框 ("已停止所有任务", 0, , ) .子程序 __启动窗口_将被销毁 ' 程序退出前停止所有线程 _按钮_全部停止_被单击 () ``` ## 代码说明 1. 初始化部分: - 创建大漠插件对象并检查是否注册成功 - 设置大漠插件的工作路径和字库 2. 获取信息功能: - 使用`EnumWindow`遍历所有窗口 - 获取窗口句柄、和线程ID并显示在列表框中 - 将相关信息存储在数组中以便后续操作 3. 启动任务功能: - 绑定选中的窗口(使用DX2后台模式) - 创建新线程执行后台操作 - 在示例中模拟了按键1、2、3的操作 4. 停止任务功能: - 通过修改标志位停止指定线程 - 线程检测到标志位变化后会自动结束并解绑窗口 5. 全部停止功能: - 修改所有线程的标志位使其停止 ## 注意事项 1. 大漠插件注册:使用前需先注册大漠插件到系统,否则无法创建对象。 2. 绑定模式:示例中使用的是DX2后台模式,根据游戏类型可能需要调整绑定参数。 3. 线程安全:多线程操作时要注意共享资源的访问控制,避免冲突。 4. 错误处理:实际应用中应增加更多错误处理代码,确保程序稳定性。 5. 性能优化:频繁的窗口操作可能影响性能,可以考虑添加适当的延时。 6. 资源释放:程序退出前确保释放所有绑定和线程资源。 [2025-08-01 07:14:07 | AI写代码神器 | 1541点数解答]
- 用java创建窗体jframe综合使用空间容器进行界面的布局,并编程实现在多个不同的界面之间相互跳转。 (1)单击“登录”按钮,能够根据输入的账号密码进行登录;如果登录失败,能够提示;如果登录成功,提示登录成功之后,能到达操作界面。 (2)单击“注册”按钮,登录界面消失,出现注册界面。 (3)单击“退出”按钮,程序退出。 或者,在上面图二中: (1)当单击“添加个人信息”菜单后进入“个人信息添加”界面,添加完成后跳转到个人信息显示界面,如果不想添加可返回到图二。 (2)当单击“修改个人信息”菜单进入到“个人信息修改”界面,修改成功后跳转到个人信息显示界面,如果不想修改可返回到图二。 (3)当单击“查看个人信息”菜单进入到“个人信息显示”界面,查看完毕可返回到图二。 (4)当单击“删除个人信息”菜单进入到“个人信息删除”界面,删除成功后跳转到个人信息显示界面,如果不想修改可返回到图二。(503点数解答 | 2024-06-06 23:49:29)281
- 写一个 易语言 多线程 启动 传递 文本数组的例子 (610点数解答 | 2025-08-04 18:05:23)88
- [{id:1,src:'/1.jpg'},{id:2,src:'null'},{id:3,src:'/2.jpg'},{id:4,src:'null'},{id:5,src:'/3.jpg'},{id:6,src:'null'}] js转换[{id:1,src:'/1.jpg'},{id:2,src:'/2.jpg'},{id:3,src:'/3.jpg'},{id:4,src:'null'},{id:5,src:'{id:4,src:'null'},'},{id:6,src:'null'}](680点数解答 | 2025-08-04 17:09:03)89
- 年会表演串词,年会节目清单 1、陈德光:诗朗诵《旗帜》5分钟 2、财务、后勤部:舞蹈《谁是我的新郎》4分钟 3、销售部:演唱《苹果香》5分钟 4、游戏:诸葛帽吃糖 5个人 一轮 10分钟 5、标书、采购部:《三句半》3分钟 6、技术部:舞蹈《wave》4分钟 7、销售部:《魔术》15分钟 8、彩虹圈转光盘 (只限于男生)4个人 一轮 10分钟 9、技术部:脱口秀 20分钟 10、销售部:《吃香蕉》3分钟 11、财务、后勤部:合唱《感恩的心》4分钟 12、游戏:喊话吹蜡烛(指定人)2个人 一轮 5分钟 13、标书、采购部:朗诵《我爱上班》 3分钟 11、销售部:邓腾龙《青花瓷》4分钟 14、相声新闻晚知道10分钟 15、游戏:摸麻将4个人 一轮 5分钟 16、大合唱:相亲相爱一家人5分钟,字数:200字(206点数解答 | 2025-01-08 10:59:43)223
- 使用c语言贪心法完成下列问题的算法设计与代码编写 (1)多机调度问题 第一行输入 任务数量 7 第二行输入 任务处理时间 2 14 4 16 6 5 3 第三行输入 机器数量 3 输出 机器编号 任务 输出格式为: 机器编号 任务 0 4 1 2 2 5 2 6 2 3 1 7 2 1(665点数解答 | 2024-11-27 08:39:39)258
- #define USE_FC16_HW 1 #include <MD_MAX72xx.h> #include <SPI.h> #define FC16_HW 1 #define HARDWARE_TYPE FC16_HW #define MAX_DEVICES 1 #define CS_PIN 12 // D8 对应 GPIO15 MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); // 蛇定义 #define WIDTH 8 #define HEIGHT 8 int snakeX[64], snakeY[64]; int snakeLength = 3; int dirX = 1, dirY = 0; int foodX = 3, foodY = 3; // 按键 A0 #define KEY_PIN A0 void setup() { mx.begin(); mx.clear(); randomSeed(analogRead(0)); // 初始化蛇身体 for (int i(1917点数解答 | 2025-07-23 14:49:18)82
- // #define USE_FC16_HW 1 // #include <MD_MAX72xx.h> // #include <SPI.h> // #define FC16_HW 1 // #define HARDWARE_TYPE FC16_HW // #define MAX_DEVICES 1 // #define CS_PIN 12 // D8 对应 GPIO15 // MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); // // 蛇定义 // #define WIDTH 8 // #define HEIGHT 8 // int snakeX[64], snakeY[64]; // int snakeLength = 3; // int dirX = 1, dirY = 0; // int foodX = 3, foodY = 3; // // 按键 A0 // #define KEY_PIN A0 // void setup() { // mx.begin(); // mx.cle(1329点数解答 | 2025-07-23 15:07:45)85
- 使用 html 代码制作一个网站完整代码。代码复杂。 该有的方面都有 背景白色 主页面背景上面显示batr.png 在batr.png图片左边的下面显示logo.png logo.png右面显示一个白色的输入框,输入框的右面显示 搜索一下 按钮 在输入框输入文字,并单击 搜索一下 则跳转到epn.html网页 呈现标题与相匹配的结果,或者是标题中包含这些文字。 如果搜索不到关于这个文字任何匹配或者包含的结果,则显示: 结果无! 下面有个“返回”按钮,单击它可返回主页面 主页面搜索框下面有勾选选项: 有mp3、 fiac、 wma、 ogg四个区勾选选项。 勾选某一个选项,主页面下面显示与选项相关的内容。例如内容是发布在fiac区的,则全部显示关于这个区的内容。 主页面的batr.png图片的右上角显示 登陆\注册 按钮 主页面的batr.png图片的左上角显示 头像 显示框在未注册或者登录的情况下,显示白色。 单击这个按钮则跳转到bnhpe.html 页面显示 背景白色,左上角显示logo.png =================================== (这里显示登陆(572点数解答 | 2024-11-17 07:58:26)181
- 2 状态图 车辆行驶过程中有以下几种状态,如:启动、怠速、加速、减速、匀速、停止,请用 uml 状态图画出各种状态之间的转换关系。 使用环境为vsode下的plantuml(163点数解答 | 2024-08-13 13:57:14)357
- 车辆行驶过程中有以下几种状态,如:启动、怠速、加速、减速、匀速、停止,请用 uml 状态图画出各种状态之间的转换关系。(828点数解答 | 2024-08-14 23:18:48)358
- 车辆行驶过程中有以下几种状态,如:启动、怠速、加速、减速、匀速、停止,请用 uml 状态图画出各种状态之间的转换关系。(574点数解答 | 2024-08-14 23:19:19)317
- 车辆行驶过程中有以下几种状态,如:启动、怠速、加速、减速、匀速、停止,请用 uml 状态图画出各种状态之间的转换关系。(236点数解答 | 2024-08-15 22:44:51)227