Python - OS X中的屏幕抓取和鼠标控制
我正在研究屏幕抓取和在OS X上控制鼠标,做一个业余项目。
我并不追求最优雅的方式,但我需要每隔大约半秒钟抓取一次屏幕。
我发现可以使用 screencapture
这个命令行工具(screencapture -w -W -i ~/Desktop/capture.jpg
),但我担心它的速度可能不够快。
我还想找到一种方法来发送点击、设置光标位置和获取光标位置。就像win32api提供的功能: mouse_event
、SetCursorPos
和 GetCursorPos
。
我找到了一段示例代码,使用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
像ControllerMate这样的自动化软件会有帮助吗?
这个软件可以让你自定义你的HID设备的行为,比如键盘、数字键盘、鼠标、轨迹球、游戏杆、手柄、油门等等。
2
如果你只是想抓取网页上的信息,我建议你试试 Sikuli。这个工具让界面自动化变得像玩游戏一样简单,而且它的脚本是用Python语言写的。
4
你可以看看autopy这个项目。它可以在OSX、Linux和Windows系统上运行。