狸窝网页flash抓取器( 基于显示列表生成屏幕上的像素?第一步UI技术背景详解)

优采云 发布时间: 2021-12-21 22:09

  狸窝网页flash抓取器(

基于显示列表生成屏幕上的像素?第一步UI技术背景详解)

  如何在网页中找到FLASH内部的按钮句柄?

  C++技术网解答:

  初看:Flash Player的内部机制

  当然,看不懂也没关系。让我们简要总结一下:

  渲染器如何根据显示列表在屏幕上生成像素?

  第一步是视频解码。

  第二步,分解显示列表,根据shape生成一个全局的边列表,然后针对rasterizer进行优化

  第三步,扫描边缘(Edges),在屏幕上逐行生成像素值,并存入缓冲区。

  第四步是将最终合成的位图交给浏览器并显示在屏幕上。

  最后的效果是这样的:

  如何在网页中找到FLASH内部的按钮句柄?" src="/source/attached/image/20160901/243_9041.jpg" alt="如何在网页中找到FLASH内部的按钮句柄?什么?” />

  最后,Flash显示的是位图,你看到的一切都是位图。实际上,这就是 Direct UI。

  使用Spy++(见:窗口跟踪神器Spy++和窗口反跟踪技术DirectUI整体解析)抓取优酷网页的Flash播放器,得到如下结果:

  

  我只看到整个Flash播放器都有一个句柄,Flash内部和网页的其他部分无法抓取。

  原因是 Flash 程序和网页程序实际上都是 Direct UI。当然,在网页中嵌入Flash时,Flash是作为控件使用的,因此Flash的整个元素都可以抓取到句柄。网页的其他元素和 Flash 中的各种元素(包括菜单)是不可抓取的,因为它们只是图像,而不是控件。带句柄的控件是Windows窗口,这里无法捕捉的是直接渲染图像。

  所以试图在网页的 FLASH 中寻找按钮句柄是徒劳的。因为很多人不了解Flash机制和Direct UI技术,所以有盲点,还在网上到处搜索无果。因为做不到,只能找到解决问题的幻想和问题。我希望这个问题在我们站结束。

  DirectUI技术请阅读:DirectUI技术背景详解及DirectUI原理介绍

  当然,获取Flash内部元素的句柄是不可能的,或者更准确地说,Flash的内部元素根本没有句柄。有没有办法和Flash交互?当然不是。由于 Flash 是基于 ActiveX 组件嵌入浏览器中的,因此 ActiveX 组件是 COM 组件。如果要操作,可以通过COM组件接口来实现。网上有些实现是基于COM接口的,而不是所谓的句柄。

  网上的大量问题没有得到解答,甚至产生误导。回答他们的人不知道为什么,所以他们更加误导。众人见他悟了,便信服了。众所周知,他们不知道如何制作。毕竟,你可以在网上找到很多代码。你懂。

  我们不提供具体的实现,我们在大方向上指明一条路,不让走弯路。自己探索吧。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线