2 oschina 40064120 oschina_40064120 于 2017.09.02 17:03 提问

Python如何做到动态捕捉屏幕内容?

当屏幕上出现了需要捕捉的图片元素,则可以获取到并作出相应。

比如说监控聊天窗口界面,当有人发了任意消息,则立刻可以作出相应(比如说截个图啥的)

如何在指定位置截图这一部分我正在学习....可是如何动态的捕捉屏幕的内容却找不到资料。

目前的想法是,循环执行一段截取固定区域的代码,然后把截取的图片和最初预设的图片进行比较,当图片相似则不作任何操作,当截取的图片发生变化则保存截取的图片。只是感觉这样貌似很麻烦...而且循环设置时间过短的话会不会对机器的负担比较大...?

希望各位大神们能不吝赐教,谢谢。

2个回答

caozhy
caozhy   Ds   Rxr 2017.09.02 17:14

因为屏幕上的文字都是通过调用api函数(windows的系统调用例程)的方式绘制到屏幕上的,所以可以通过api函数拦截的方法来捕捉写到屏幕上的文字。

http://download.csdn.net/download/caozhy/9959220 逆向工程核心原理(含源代码) 这本书的第32章给出了一个如何通过拦截windows api实现让计算器程序输出中文的结果

图片说明

配套的源代码是一个通用的,可以在python直接调用

oschina_40064120
oschina_40064120 谢谢指导!
3 个月之前 回复
oyljerry
oyljerry   Ds   Rxr 2017.09.02 17:15

Python只能截屏。没有能力做动态捕获。需要显卡驱动层面

oschina_40064120
oschina_40064120 那么提前保存一个区域的内容作原截图,然后循环截取这个部分与原截图做比较,如果内容发生变化了则保存新截图,这个思路可行吗?谢谢指教。
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片