开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 164|回复: 2
收起左侧

[精币悬赏] 精易模块最新版_外部树型框TreeView_双击项目_TVM_GETITEMRECT

[复制链接]
结帖率:50% (4/8)
发表于 2025-1-1 17:22:51 | 显示全部楼层 |阅读模式   江西省南昌市
5精币
  
我把相关代码先放上来,大佬也可去精易模块直接看:
子程序名返回值类型公开备 注
取指针_通用型整数型 取到的是变量在栈中的地址,和 取变量地址() 一样
参数名类 型参考可空数组备 注
变量通用型基本支持所有类型
置入代码 ({ 139, 69, 8, 201, 194, 4, 0 })
返回 (0)
数据类型名公开备 注
精易_矩形 
成员名类 型传址数组备 注
左边整数型左边,相当于左上角的x
顶边整数型顶边,相当于左上角的y
右边整数型右边,相当于右下角的x
底边整数型底边,相当于右下角的y

子程序名返回值类型公开备 注
__get整数型 请确保指针的合法性,读取内存
参数名类 型参考可空数组备 注
lpAddr整数型内存地址
offset整数型偏移
置入代码 ({ 139, 69, 8, 139, 93, 12, 139, 4, 24, 201, 194, 8, 0 })
' mov eax,[ebp+8]
' mov ebx,[ebp+12]
' mov eax,[eax+ebx]
' leave
' ret 8
返回 (0)
窗口程序集名保 留  保 留备 注
外部树型框, , 公开   
变量名类 型数组备 注
m_hItemParent长整数型0有父项目的句柄组
集_单一项目TVITEMEX  
集_树型框项目TVITEMEX2  
集_外部数据地址1整数型  
集_外部数据地址2整数型  
集_项目地址整数型  
m_hWnd整数型  
_数据地址整数型加入项目1 使用,可避免重复使用一些API函数
_项目TVINSERTSTRUCT加入项目1 使用
_搜索回调Call整数型  
m_hProc整数型树型框所在进程的进程句柄, 此值作为判断是否操作外部进程, 操作内部进程此值为0
m_hItems长整数型0树型框所有项目句柄
m_isWow64逻辑型是否运行在Wow64环境下, 为真则进程是32位程序
m_item整数型项目缓冲区, 所有发送TVITEMEXW结构的都使用这个地址, 包含文本缓冲区
m_itemSize整数型m_item 当前的尺寸, 缓冲区变大时需要重新分配

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
集_单一项目.cchTextMax = 260
集_树型框项目.cchTextMax = 260
子程序名返回值类型公开备 注
初始化逻辑型 
参数名类 型参考可空数组备 注
树型框句柄整数型
树型框类名文本型
是否操作外部控件逻辑型
变量名类 型静态数组备 注
项目数整数型 
ret逻辑型 
isWow64逻辑型 
isTem32逻辑型 
currentPid整数型 
treePid  
x64Init ()
isTem32 = 系统_是否64位操作系统 () = 假
m_isWow64 = isTem32
如果真 (窗口_句柄是否有效 (树型框句柄))
返回 ()
_数据地址 = 0
' 相同的不再初始化
如果真 (m_hWnd = 树型框句柄 项目数 = 取项目数 ())
返回 ()

currentPid = 进程_取自进程ID ()
treePid = 窗口_句柄取进程ID (树型框句柄)
是否操作外部控件 = currentPid ≠ treePid
如果 (是否操作外部控件)
m_hProc = OpenProc (树型框句柄)
如果真 (m_hProc = 0)
返回 ()
如果真 (isTem32 = IsWow64Process (m_hProc, m_isWow64))
m_isWow64 = 真

m_isWow64 = 真

m_hWnd = 树型框句柄
如果真 (m_isWow64 = )
输出调试文本 (“不支持x64”)
返回 ()

内部_遍历句柄 ()
返回 ()
子程序名返回值类型公开备 注
__SendMsgW长整数型 
参数名类 型参考可空数组备 注
message整数型
wParam长整数型
lParam长整数型
返回 (SendMessageW (m_hWnd, message, wParam, lParam))
子程序名返回值类型公开备 注
取数据_通用型整数型 取到的是变量在堆中的地址,和 取变量数据地址() 一样,注意: 字节集数据需要+8,前8位是标准,字节集型数据建议使用 取指针_字节集型()
参数名类 型参考可空数组备 注
数据通用型不建议传递字节集型变量
置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
返回 (0)
子程序名返回值类型公开备 注
双击项目 
参数名类 型参考可空数组备 注
项目句柄长整数型
变量名类 型静态数组备 注
精易_矩形精易_矩形 
p整数型 
结果1长整数型 
结果2长整数型 
p = 取指针_通用型 (项目句柄)
信息框 (到文本 (m_hWnd)“,”到文本 (p)“,”到文本 (项目句柄)“,”到文本 (精易_矩形.左边)“,”到文本 (精易_矩形.顶边)“,”到文本 (精易_矩形.右边)“,”到文本 (精易_矩形.底边), 0, , )
精易_矩形.左边 = __get (p, 0)
信息框 (到文本 (m_hWnd)“,”到文本 (p)“,”到文本 (项目句柄)“,”到文本 (精易_矩形.左边)“,”到文本 (精易_矩形.顶边)“,”到文本 (精易_矩形.右边)“,”到文本 (精易_矩形.底边), 0, , )
精易_矩形.顶边 = __get (p, 4)
信息框 (到文本 (m_hWnd)“,”到文本 (p)“,”到文本 (项目句柄)“,”到文本 (精易_矩形.左边)“,”到文本 (精易_矩形.顶边)“,”到文本 (精易_矩形.右边)“,”到文本 (精易_矩形.底边), 0, , )
计次循环首 (2, )
结果1 = __SendMsgW ( #TVM_GETITEMRECT, 0, 取数据_通用型 (精易_矩形))  ' 取矩形
信息框 (到文本 (结果1)“,”到文本 (m_hWnd)“,”到文本 (结果2)“,”到文本 (p)“,”到文本 (项目句柄)“,”到文本 (精易_矩形.左边)“,”到文本 (精易_矩形.顶边)“,”到文本 (精易_矩形.右边)“,”到文本 (精易_矩形.底边), 0, , )
结果2 = __SendMsgW ( #TVM_ENSUREVISIBLE, 0, 项目句柄)  ' 保证显示
计次循环尾 ()
以上是精易模块_外部树型框类_双击项目子程序的相关代码说一下为什么双击项目子程序中的__SendMsgW ()函数为什么才3个参数,因为第一个参数直接默认了是初始化中的程序集变量 m_hWnd。
经过测试信息框一共弹了5次,
第一次信息框分别是:3411404,1700504,299761096,0,0,0,0;
第二次信息框和第三次信息框内容是一样的:3411404,1700504,299761096,299761096,0,0,0;
第四次信息框和第五次信息框内容是一样的:0,3411404,0,1700504,299761096,299761096,0,0,0;
请问为什么取的矩形范围不正确!跪求大佬现场教学一波,虚心学习。和你确定的一点的是树型框句柄和树型框项目句柄是没问题的。问题好像出在了__get ()函数传递上,有没有懂的大佬看看,这是精易模块的外部树型框类-双击项目


323F8A24-DD21-4E37-B84D-78D893EC17DC.png
840DEA41-D5F9-436F-A0F0-8DF6B5D5C655.png
结帖率:50% (4/8)

签到天数: 17 天

 楼主| 发表于 2025-1-1 20:17:03 | 显示全部楼层   江西省南昌市
听别人说好像是第一行的代码有问题,然后又有说是写入内存的问题,我已经没有头绪了,烦请大佬指点,测过无数遍还是搞不好这个
回复

使用道具 举报

结帖率:50% (4/8)

签到天数: 17 天

 楼主| 发表于 2025-1-2 11:35:36 | 显示全部楼层   江西省赣州市
各路大佬麻烦指点迷津,呜呜呜
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

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

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

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