开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 870|回复: 6
收起左侧

[求助] 大漠绑定窗口的一个小问题

[复制链接]
结帖率:50% (3/6)
发表于 2023-6-5 10:19:33 | 显示全部楼层 |阅读模式   浙江省温州市
大漠通过鼠标指定获取窗口句柄,绑定窗口后台模式。打算是开多线程多窗口的,但是现在刚开始只是单窗口测试,一直没有问题。然而昨天晚上,我在测试这个窗口的时候,打开了另外一个窗口,未对新窗口做任何操作,代码运行就出问题了。大致以下情况:1.只存在一个游戏窗口的时候,后台识图,后台键盘,后台鼠标都没有问题,只要不是有另外的游戏窗口在,随便其他任何程序窗口遮挡,游戏窗口外操作鼠标键盘都不会出问题。
2.先打开一个游戏窗口,绑定成功运行后,再打开另外一个窗口,那么第一个窗口辅助运行没其他问题,但是很奇怪,他的窗口层次非要跑到第2个游戏窗口上面才行,比如我易语言和另外一个游戏窗口,同时挡住第一个在操作的窗口,那么这第一个在操作的窗口,他只跑到第2个游戏窗口上面,但是仍然在易语言窗口或是用另外一种浏览器打开的游戏窗口下面。
3.2个窗口,同时进入各自线程进行。同样就是互相争抢上面的层次,就像每次操作都要被激活一下似的,几次之后就全部不运行了(可能刚好遇到代码对他俩窗口层次需求冲突的地方),但是同样都不会跟易语言窗口或是用另外一种浏览器打开的游戏窗口抢。
4.这个时候,无论重新运行代码,还是重新直接从绑定第一个游戏窗口开始,或是直接关闭所有游戏窗口重新开是,必须要后台鼠标先点击了,那后台识图和后台键盘才生效。
5.能绑定成功的后台模式都是一样的情况。
我的理解是后台都是在一个句柄下执行的,而且句柄在执行开始时就是不变的,而且2个游戏窗口的句柄都是不一样的,包括窗口父句柄和游戏窗口子句柄。
现在用的浏览器是cef框架,窗口是点击链接弹出的窗口,这个窗口我也不明白还算不算是属于cef的。
这是啥问题呢,要怎么解决呢?
结帖率:50% (3/6)
 楼主| 发表于 2023-6-5 14:56:09 | 显示全部楼层   浙江省温州市
乐鱼驴 发表于 2023-6-5 11:01
1.浏览器游戏和和别的窗口不太一样。
2.鉴于你说的情况,命令问题不大。
3.应该是逻辑问题。或者多线程理解 ...

不清楚,多窗口多线程也是用过几次的,十几开的窗口互相配合操作都可以完美运行。
回复 支持 反对

使用道具 举报

结帖率:50% (3/6)
 楼主| 发表于 2023-6-9 12:40:50 | 显示全部楼层   浙江省温州市
昨晚试验了好久,终于找到问题了。只是因为多个游戏窗口都是从一个cef浏览器通过链接打开的弹出窗口。编译成exe后,一带一打开,就不会互相干扰。虽然不明白其中缘由,但也算解决了
回复 支持 反对

使用道具 举报

结帖率:92% (11/12)

签到天数: 10 天

发表于 2023-6-5 11:01:15 高大上手机用户 | 显示全部楼层   河北省邯郸市
1.浏览器游戏和和别的窗口不太一样。
2.鉴于你说的情况,命令问题不大。
3.应该是逻辑问题。或者多线程理解问题。
4.预估大概率是多线程使用出的问题。
回复 支持 反对

使用道具 举报

结帖率:95% (19/20)

签到天数: 8 天

发表于 2023-6-5 11:03:31 | 显示全部楼层   福建省福州市
1.运行中有没有重新获取窗口句柄的地方,句柄串台了
2.给的大漠线程索引串台了
回复 支持 反对

使用道具 举报

结帖率:50% (3/6)
 楼主| 发表于 2023-6-5 14:32:42 | 显示全部楼层   浙江省温州市
destinyx8099 发表于 2023-6-5 11:03
1.运行中有没有重新获取窗口句柄的地方,句柄串台了
2.给的大漠线程索引串台了 ...

应该不是
看我第2条说的,一个窗口是绑定大漠运行代码的,后开的那个窗口什么都没做。
然后,窗口句柄是先通过鼠标指定获取,添加至窗口列表框。
程序开启时,我要先选中列表框的窗口句柄,然后程序里读取窗口列表框选中的句柄,选一个开一个线程。所以,我只是添加了一条窗口句柄,开一个线程,不会串了这种。挺奇怪,另外一个窗口什么都没做怎么就妨碍到他了,他非要跑到另外那个游戏窗口前面去。然后易语言窗口在他上面,他又不管。
回复 支持 反对

使用道具 举报

结帖率:50% (3/6)
 楼主| 发表于 2023-6-5 14:50:44 | 显示全部楼层   浙江省温州市
放上相关的一些代码,几kb的图片不知道为什么上不了--------------------------------------------
.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 小熊, 小熊输入法, , "0"
.程序集变量 PgUp, 整数型
.程序集变量 PgPd, 整数型
.程序集变量 图片目录, 文本型
.程序集变量 主体功能句柄, 整数型, , "0"
.程序集变量 简便挂机句柄, 整数型, , "0"
.程序集变量 挂机模式, 整数型
.程序集变量 djys, 整数型
.程序集变量 bfys, 整数型

--------------------------------------------
.版本 2

.子程序 _窗口添加按钮_被单击
.局部变量 窗口主体, 整数型
.局部变量 窗口标题, 整数型

延时 (2222)
窗口标题 = 窗口_取鼠标处窗口句柄 ()
延时 (111)
窗口主体 = 窗口_取句柄 (窗口_取句柄 (窗口标题, , , ), , , )
延时 (111)
窗口主体列表框.加入项目 (到文本 (窗口主体), )
窗口标题列表框.加入项目 (到文本 (窗口标题), )

--------------------------------------------
.版本 2
.支持库 EThread

.子程序 _功能全程按钮_被单击
.局部变量 窗口序号, 整数型

.如果 (窗口主体列表框.现行选中项 = -1)
    信息框 (“请在窗口列表中选择目标项”, 0, “提醒”, 取窗口句柄 ())
.否则
    窗口序号 = 窗口主体列表框.现行选中项 + 1
    启动线程 (&主体功能, , 主体功能句柄 [窗口序号])

--------------------------------------------
.版本 2

.子程序 主体功能

.局部变量 窗口句柄, 整数型
.局部变量 窗口序号, 整数型


线程_初始化COM库 ()
窗口序号 = 窗口主体列表框.现行选中项 + 1
窗口句柄 = 到整数 (窗口主体列表框.取项目文本 (窗口主体列表框.现行选中项))

小熊 [窗口序号].初始化 (取运行目录 () + “\..........dll”)
延时 (55)
.如果 (小熊 [窗口序号].取插件版本 () ≠ “”)
    运行日志列表框.插入项目 (0, 时间到文本 (时间_取北京时间 (), 3) + “:” + 到文本 (窗口序号) + “窗口程序加载成功”, )
    运行日志列表框.现行选中项 = 0
.否则
    运行日志列表框.插入项目 (0, 时间到文本 (时间_取北京时间 (), 3) + “:” + 到文本 (窗口序号) + “窗口程序未能加载”, )
    运行日志列表框.现行选中项 = 0
    结束 ()
.如果结束
小熊 [窗口序号].绑定 (窗口句柄, “dx2”, “windows”, “windows”, 0)
延时 (555)

后面开始运行主程序,不会再有取句柄之类的。









补充内容 (2023-6-5 14:52):
数组在窗口创建完毕读取配置的时候有做重定义了。
回复 支持 反对

使用道具 举报

  高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则 致发广告者

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

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

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