Python - OS X中的屏幕抓取和控制鼠标

时间:2010-12-23 04:29:29

标签: python macos screen-scraping

我正在寻找屏幕抓取并在OS X中控制鼠标以进行业余爱好项目。

我不是在寻找最优雅的方式,但我需要能够每半秒左右捕捉一次屏幕。

我发现我可以使用screencapture命令行工具(screencapture -w -W -i ~/Desktop/capture.jpg),但我担心它可能不够快。

我也在寻找一种发送点击,设置光标位置和获取光标位置的方法。有点类似于win32api提供的内容:mouse_eventSetCursorPosGetCursorPos

我发现这个示例代码使用PyObjC库设置光标位置,但它始终将鼠标移动到(0,0)而不是我传递的坐标。

import objc

class ETMouse():   
    def setMousePosition(self, x, y):
        bndl = objc.loadBundle('CoreGraphics', globals(),
                '/System/Library/Frameworks/ApplicationServices.framework')
        objc.loadBundleFunctions(bndl, globals(),
                [('CGWarpMouseCursorPosition', 'v{CGPoint=ff}')])
        CGWarpMouseCursorPosition((x, y))

if __name__ == "__main__":
    et = ETMouse()
    et.setMousePosition(500, 500)

编辑:如果重要的话,我正在运行Snow Leopard(10.6)。

谢谢!

3 个答案:

答案 0 :(得分:4)

看看autopy。适用于OSX,Linux和Windows。

答案 1 :(得分:2)

如果您只是屏幕抓图,我建议您尝试Sikuli吗?它使得界面自动化就像孩子一样,脚本使用Python。

答案 2 :(得分:0)

ControllerMate这样的自动化软件会有帮助吗?

  

允许您自定义行为   您的HID设备 - 键盘,   键盘,鼠标,轨迹球,操纵杆,   游戏手柄,油门等等