Python图像处理截图

时间:2013-10-31 00:55:37

标签: python

我正在尝试编写一个程序,而不是检测我的鼠标指针何时会改变图标并自动发出鼠标点击。有没有更好的方法来做截图并解析图像的鼠标图标?

编辑: 我在Windows 7上运行我的程序。 我正在尝试学习一些图像处理,并制作一个简单的Flash游戏,我自动化。 规则:当curses改变形状时,单击以获得一个点。

另外,python的哪些成像模块可以让你拍摄特定尺寸的屏幕截图而不仅仅是整个屏幕?这个问题已转移到一个新的主题:“Taking Screen shots of specific size

1 个答案:

答案 0 :(得分:0)

在Windows中执行此操作的方法是安装带有SetWindowsHookExSetWinEventHook的全局消息挂钩。 (或者,您可以构建一个DLL,将Python和钩子嵌入到浏览器或其Flash包装器应用程序中,并在应用程序中减少干扰,但这需要更多工作。)

您想要的邮件是WM_SETCURSOR。请注意,这是Windows发送给应用程序的消息,询问是否要更改游标,而不是光标更改时发送的消息。因此,IIRC,您需要设置WH_CALLWNDPROCWH_CALLWNDPROCRET并检查GetCursorInfo之前和之后的状态,以查看该应用是否已完成此操作。

那么,你是如何从Python那样做的呢?老实说,如果你还不知道win32apipywin32包中的朋友,以及如何用某种语言编写Windows消息过程,你可能不想这样做。如果你想要,我会从UNC Assist的(废弃的)pyHook项目开始。即使你无法使它工作,它也充满了有用的源代码。

您还应搜索[python] SetWinEventHook[python] SetWindowsHookEx的搜索引擎优化,并稍微谷歌搜索一下;那里有一些例子(我甚至在某处写过一个......)

您可以查看更高级别的包装器框架,例如pywinautowinGuiAuto,但据我所知,它们都没有对捕获事件有太多帮助。

我相信还有其他工具,可能AutoIt,它们具备您需要的所有功能,但不包含在Python模块中。 (例如,AutoIt有自己的类似VB的脚本语言。)