kenwrz 发表于 2020-1-5 14:46:39

新手学大漠绑定遇到一个问题请教各位同学

      用大漠3.1233版学习绑定找图.静态编译后,复制成两份分别保存.单独测试这个小程序,都可以查找图片内容..两个程序同时打开,就只有一个能正常找图.另一个识别不到.
       (所有试验图片,和程序都在同一台电脑中,不存在分辨率改变,或图色不对)   

易辅 发表于 2020-1-6 01:59:13

你需要把你的代码截图出来看下

kenwrz 发表于 2020-1-6 15:39:32

随风 发表于 2020-1-6 01:59
你需要把你的代码截图出来看下

感谢导师及时回复! 我重新看了几遍代码例子,发现是大漠多线程信息的线程句柄,不可用,要使用大漠线程信息   才有效.

kenwrz 发表于 2020-1-6 16:49:17

本帖最后由 kenwrz 于 2020-1-6 16:54 编辑

kenwrz 发表于 2020-1-6 15:39
感谢导师及时回复! 我重新看了几遍代码例子,发现是大漠多线程信息的线程句柄,不可用,要使用大漠线 ...
就可以了一两次,又不可以了,还是请导师指导一下问题原因.感谢
以下是全部代码:
.版本 2
.支持库 spec

.程序集 窗口程序集_启动窗口
.程序集变量 大漠多线程, 大漠线程信息, , "200"

.子程序 __启动窗口_创建完毕

.如果真 (判断大漠组件是否被注册 () = 假)
    大漠注册 (取运行目录 ())
.如果真结束


.子程序 __启动窗口_将被销毁

线程_结束 (大漠多线程 .线程句柄)
线程_结束 (大漠多线程 .线程句柄)
大漠多线程 .大漠.解绑 ()
大漠多线程 .大漠.解绑 ()
结束 ()

.子程序 _按钮_线程1_被单击
.局部变量 i, 整数型

i = 1' 仅测试,直接指定值'
调试输出 (“线程句柄1,已启动”)
线程_启动 (&线程1, i, 大漠多线程.线程句柄)
调试输出 (“大漠多线程 .线程句柄”, 大漠多线程 .线程句柄)

.子程序 _按钮_线程2_被单击
.局部变量 i, 整数型

i = 2' 仅测试,直接指定值'
调试输出 (“线程句柄2,已启动”)
线程_启动 (&线程2, i, 大漠多线程 .线程句柄)
调试输出 (“大漠多线程 .线程句柄”, 大漠多线程 .线程句柄)

.子程序 _按钮_线程1结束_被单击
.局部变量 i, 整数型

i = 1' 仅测试,直接指定值'
线程_结束 (大漠多线程 .线程句柄)
大漠多线程.大漠.解绑 ()
调试输出 (“线程句柄1,已停止”)

.子程序 _按钮_线程2结束_被单击
.局部变量 i, 整数型

i = 2' 仅测试,直接指定值'
线程_结束 (大漠多线程 .线程句柄)
大漠多线程.大漠.解绑 ()
调试输出 (“线程句柄2,已停止”)

.子程序 线程1
.参数 i, 整数型

初始化COM库 ()
绑定窗口 (i)
.判断循环首 (1 = 1)
    调试输出 (“线程1:” + 大漠多线程 .大漠.找图Ex (0, 0, 1366, 768, “test1.bmp”, “050505”, 0.9, 0))' 找一个指定的图'
    辅助延时 (2000)
.判断循环尾 ()


.子程序 线程2
.参数 i, 整数型

初始化COM库 ()
绑定窗口 (i)
.判断循环首 (1 = 1)
    调试输出 (“线程2:” + 大漠多线程 .大漠.找图Ex (0, 0, 1366, 768, “test2.bmp”, “050505”, 0.9, 0))' 找另一个指定的图'
    辅助延时 (2000)
.判断循环尾 ()


.子程序 绑定窗口
.参数 i, 整数型

大漠多线程.大漠.创建对象 ()
大漠多线程.大漠.置全局路径 (取运行目录 ())
调试输出 (“第” + 到文本 (i) + “个对象版本号:”, 大漠多线程.大漠.取插件版本 ())
辅助延时 (3000)
大漠多线程.大漠.绑定 (大漠多线程 .大漠.窗口_取鼠标指向句柄 (), “dx2”, “dx2”, “dx”, 0)' 手动指向
调试输出 (“第” + 到文本 (i) + “窗绑定句柄:”,大漠多线程 .大漠.窗口_取鼠标指向句柄 ())' 输出绑定的窗口句柄'

kenwrz 发表于 2020-1-6 17:00:04

"[]"下标会被自动清除,,,,,修也也没用,就这样传吧

kenwrz 发表于 2020-1-6 17:14:10

kenwrz 发表于 2020-1-6 17:00
"[]"下标会被自动清除,,,,,修也也没用,就这样传吧

调试输出就只找到一次
* “线程句柄1,已启动”
* “大漠多线程信息 .线程句柄” | 340
* “第1个对象版本号:” | “3.1233”
* “第1窗绑定句柄:” | 200084
* “线程1:0,111,341”
* “线程1:0,111,341”
* “线程1:0,111,341”
* “线程1:0,111,341”
* “线程句柄2,已启动”
* “大漠多线程信息 .线程句柄” | 488
* “第2个对象版本号:” | “3.1233”
* “线程1:0,111,341”
* “线程1:0,111,341”
* “第2窗绑定句柄:” | 134522
* “线程2:0,39,449”            --------------------------------------
* “线程1:0,111,341”
* “线程2:”
* “线程1:0,111,341”
* “线程2:”
* “线程1:0,111,341”
* “线程2:”
* “线程1:0,111,341”
* “线程2:”
被调试易程序运行完毕

易辅 发表于 2020-1-6 19:37:13

kenwrz 发表于 2020-1-6 17:14
调试输出就只找到一次
* “线程句柄1,已启动”
* “大漠多线程信息 .线程句柄” | 340


请仔细看下线程的课, 不要用 这类的

而是用 这类的
大漠多线程信息 中的线程句柄并不是无效,无效说明你没有给他赋值
多开与否 是在于你 启动与查到的为准

kenwrz 发表于 2020-1-14 01:26:17

随风 发表于 2020-1-6 19:37
请仔细看下线程的课, 不要用 这类的

而是用 这类的


用教学课程改写部分代码.试了多次,仍是无法成功绑定多窗口,有且只有一个可以,不知道为什么,再次请教!
代码如下:
.版本 2
.支持库 spec

.子程序 _按钮_多窗口绑定_被单击
.局部变量 i, 整数型

.计次循环首 (2, i)
    线程_启动 (&初始化, i, 大漠多线程信息 .线程句柄)
    辅助延时 (1000)
    调试输出 (“第” + 到文本 (i) + “线程句柄:” + 到文本 (大漠多线程信息 .线程句柄))
.计次循环尾 ()


.子程序 初始化
.参数 i, 整数型

初始化COM库 ()
大漠多线程信息 .大漠.创建对象 ()
大漠多线程信息 .大漠.置全局路径 (取运行目录 ())
.如果真 (大漠多线程信息 .大漠.取插件版本 () ≠ “”)
    开始游戏 (i)
.如果真结束


.子程序 开始游戏
.参数 i, 整数型
.局部变量 大漠, 大漠中文版
.局部变量 句柄, 整数型

大漠 = 大漠多线程信息 .大漠
.判断开始 (i = 1)
    句柄 = 852882 '方便测试,大漠工具直接抓取句柄,赋值
.判断 (i = 2)
    句柄 = 329560 '方便测试,大漠工具直接抓取句柄,赋值
.默认

.判断结束
窗口_置状态 (句柄, 9)
绑定游戏 (句柄, i)
辅助延时 (2000)


.子程序 绑定游戏
.参数 句柄, 整数型
.参数 i, 整数型
.局部变量 大漠, 大漠中文版

大漠 = 大漠多线程信息 .大漠
.如果 (大漠.绑定 (句柄, “dx2”, “dx2”, “dx”, 0) = 1)
    调试输出 (i, “绑定成功”)
.否则
    调试输出 (i, “绑定失败”)
    返回 ()
.如果结束
辅助延时 (500)

输出结果都是:
* “3.1233”
* 1 | “绑定成功”
* “第1窗口句柄:340”
* 2 | “绑定失败”
* “第2窗口句柄:364”
被调试易程序运行完毕
页: [1]
查看完整版本: 新手学大漠绑定遇到一个问题请教各位同学