有大佬研究过内存数据吗?

2019-10-04 17:34:02 +08:00
 abczise

我想从内存中获取到一个窗口的控件内容。控件是 pictureBox 控件。就是个图片控件 我尝试内存中查找图片的特征码 IHDR、GIF、JFIF 等,都没有办法获取到 另外有种就是屏幕截图,但是这种我不太喜欢,希望可以直接从内存中找到该数据,这样也可以省掉一点消耗。 请问是我的思路错了吗? 求各位大佬指点迷津~

2102 次点击
所在节点    问与答
7 条回复
xupefei
2019-10-04 17:41:57 +08:00
内存里是不会有特征码的,显示在屏幕上的图片经过了解码,内存里只有每个点的颜色。
想从内存里找到图片数据,你需要用 debugger 找到设置图片的代码,然后根据内存指针找到图片地址。
rumu3f
2019-10-04 17:42:28 +08:00
Ce+Od
watzds
2019-10-04 17:46:55 +08:00
以前 windows 上的 spy++是能看 win32 那些控件的属性的
Kirscheis
2019-10-04 17:50:04 +08:00
截图和从内存里取并没有区别啊,都是已经解码的数据。。如果你是想找到图片源文件,那得下断点,因为一般读完之后就已经 close 了,内存里源文件就被 flush 掉了。
abczise
2019-10-04 18:05:37 +08:00
@watzds 查到属性后怎么操作?截屏 ?
ysc3839
2019-10-04 20:21:31 +08:00
@abczise 那些“属性”只是一些 bitset flag,比如控制是否显示这类的,不是你想的可以读取出图片。
WinCloud
2019-10-04 21:27:34 +08:00
应该可以通过 UI automtic 接口获取控件位置,再用窗口句柄截图吧。能显示出来的图片基本都是 RGBA 格式了,有些 GPU 绘制的控件,图片数据可能会存到显存里,内存上找不到的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/606316

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX