我把相关代码先放上来,大佬也可去精易模块直接看:
置入代码 ({ 139, 69, 8, 201, 194, 4, 0
})返回 (0
)|
精易_矩形 | |
|
左边 | 整数型 | √ | |
顶边 | 整数型 | √ | |
右边 | 整数型 | √ | |
底边 | 整数型 | √ | |
|
__get | 整数型 | |
|
lpAddr | 整数型 | | | |
offset | 整数型 | | | |
置入代码 ({ 139, 69, 8, 139, 93, 12, 139, 4, 24, 201, 194, 8, 0
}) 返回 (0
)窗口程序集名 | 保 留 | 保 留 | 备 注 |
外部树型框, , 公开 | | | |
变量名 | 类 型 | 数组 | 备 注 |
m_hItemParent | 长整数型 | 0 |
集_单一项目 | TVITEMEX | |
集_树型框项目 | TVITEMEX2 | |
集_外部数据地址1 | 整数型 | |
集_外部数据地址2 | 整数型 | |
集_项目地址 | 整数型 | |
m_hWnd | 整数型 | |
_数据地址 | 整数型 | |
_项目 | TVINSERTSTRUCT | |
_搜索回调Call | 整数型 | |
m_hProc | 整数型 | |
m_hItems | 长整数型 | 0 |
m_isWow64 | 逻辑型 | |
m_item | 整数型 | |
m_itemSize | 整数型 | |
集_单一项目.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
))
置入代码 ({ 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 ()函数传递上,有没有懂的大佬看看,这是精易模块的外部树型框类-双击项目