```
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 DM, 类_大漠
.程序集变量 TS, 类_天使
.程序集变量 句柄数组, 整数型, , "0"
.子程序 __启动窗口_创建完毕
插件注册 (取运行目录 () + “\dm.dll”)
寻找窗口 (“client.exe”)
.子程序 _组合框1_列表项被选择
.子程序 _按钮_结束_被单击
按钮_开始.禁止 = 假
DM.UnBindWindow () ' 释放的大漠绑定事件
.子程序 寻找窗口
.参数 参数集_进程名称, 文本型
.局部变量 进程名数组, 文本型, , "0"
.局部变量 进程ID数组, 整数型, , "0"
.局部变量 i, 整数型
.局部变量 进程数量, 整数型
进程数量 = 进程_枚举 (进程名数组, 进程ID数组)
.计次循环首 (进程数量, i)
.如果真 (文本_到小写 (进程名数组 [i]) = 参数集_进程名称)
加入成员 (句柄数组, 进程_ID取窗口句柄 (进程ID数组 [i]))
.如果真结束
处理事件 ()
.计次循环尾 ()
.如果真 (取数组成员数 (句柄数组) > 0)
.计次循环首 (取数组成员数 (句柄数组), i)
组合框1.加入项目 (“第” + 到文本 (i) + “个窗口:” + 到文本 (句柄数组 [i]), )
.计次循环尾 ()
组合框1.现行选中项 = 0
.如果真结束
.子程序 _按钮_开始_被单击
.局部变量 Hwnd, 整数型
.局部变量 大漠_返回值, 整数型
按钮_开始.禁止 = 真
Hwnd = 句柄数组 [组合框1.现行选中项 + 1]
大漠_返回值 = DM.BindWindow (Hwnd, “gdi”, “windows”, “windows”, 0) ' //绑定窗口
调试输出 (大漠_返回值) ' 返回1说明没问题
.子程序 _按钮_测试_被单击
DM.MoveTo (512, 17)
程序_延时 (100)
DM.LeftClick ()
```
## 第一步:
## 获取窗口句柄ID
## 写一个函数 (寻找窗口)
```
.版本 2
.子程序 寻找窗口
.参数 参数集_进程名称, 文本型
.局部变量 进程名数组, 文本型, , "0"
.局部变量 进程ID数组, 整数型, , "0"
.局部变量 i, 整数型
.局部变量 进程数量, 整数型
进程数量 = 进程_枚举 (进程名数组, 进程ID数组)
.计次循环首 (进程数量, i)
.如果真 (文本_到小写 (进程名数组 [i]) = 参数集_进程名称)
加入成员 (句柄数组, 进程_ID取窗口句柄 (进程ID数组 [i]))
.如果真结束
处理事件 ()
.计次循环尾 ()
.如果真 (取数组成员数 (句柄数组) > 0)
.计次循环首 (取数组成员数 (句柄数组), i)
组合框1.加入项目 (“第” + 到文本 (i) + “个窗口:” + 到文本 (句柄数组 [i]), )
.计次循环尾 ()
组合框1.现行选中项 = 0
```
## 第二步:启动窗口寻找游戏进程:
```
.版本 2
.子程序 __启动窗口_创建完毕
插件注册 (取运行目录 () + “\dm.dll”)
寻找窗口 (“client.exe”)
```
## 第三步:按钮开始启动大漠并绑定:
```
.版本 2
.支持库 spec
.子程序 _按钮_开始_被单击
.局部变量 Hwnd, 整数型
.局部变量 大漠_返回值, 整数型
按钮_开始.禁止 = 真
Hwnd = 句柄数组 [组合框1.现行选中项 + 1]
大漠_返回值 = DM.BindWindow (Hwnd, “gdi”, “windows”, “windows”, 0) ' //绑定窗口
调试输出 (大漠_返回值) ' 返回1说明没问题
```
## 最后:点击结束按钮释放:
```
.版本 2
.子程序 _按钮_结束_被单击
按钮_开始.禁止 = 假
DM.UnBindWindow () ' 释放的大漠绑定事件
```