背景: acute3d
viewer作为smart3d成果浏览器,可以浏览倾斜数据成果,在工作中,有这样的需求,需要基于倾斜数据进行数据采集,常用二维采集软件为cass,支持三维采集的软件也比较多,如idata、dpmap
3d、eps、sv360等。
我们也基于osg开源代码,实现了三维数据浏览与采集,并嵌入到cass中,可以联动测图。
如果能实现ccviewer与cass的联动,效果也不错,参考视频为369-三石:
https://v.youku.com/v_show/id_XMjY5OTgwMzA1Ng==.html
纯兴趣研究。
通过分析,有两种方式
1、通过API,findwindow、findwindowex获取窗口,然后获取窗口文本的方式。
但该方式由于ccviewer是用QT开发,它支持跨平台,没有windows中所谓的句柄一说,只能通过findwindow找到主窗口的句柄,但窗口内控件的句柄不能获取到,暂搁置。后期计划尝试,获取图片,然后进行识别,但识别有错误的风险。
最后通过发送鼠标命令解决搞定。
查看句柄的工具有:spy++、syp4win、AutoIt v3 window info
2、通过访问内存的方式,读取数据
由于ccviewer在使用测量工具时,结果会存放到内存中,通过内存获取数据。
风险:需要通过动态内存,找到基址,每个软件版本不变,安装在不同电脑上时,基址不会发生变化,通过基址到动态内存之间的偏移量找到内存地址,然后获取数据。但在使用过程中,发现没有偏移量(技术能力不到,不太会用cheat
engine,并且对内存方面的知识也欠缺)
使用工具:cheatEngin
