python实现在 Mac 10.9 远程桌面截屏抓取
来源:互联网 发布:淘宝补单 编辑:程序博客网 时间:2024/06/05 12:05
照样画葫芦,用python编写了一段小程序,可以使用ipad的web浏览器远程监控远端iMac主机界面(每秒截屏,非流控),与大家分享。
1. 首先介绍一下需要下载的第三方工具:
Flask,Pyscreenshot
Flask用来做web服务器,Pyscreenshot是用来截屏的。用pip install 分别安装即可
2. 介绍程序文件架构如下,需要simplesvr.py主伺服程序,和供客户端浏览调用的index.html
3. index.html文件如下:
<span style="font-size:18px;"><!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>Remote Desktop</title> <style> body { margin: 0 } img { max-width: 100% } </style> </head> <body> <img src="/desktop.jpeg"> <script src="//code.jquery.com/jquery-1.11.1.js"></script> <script> function reload_desktop() { $('img').remove() $('<img>', {src: '/desktop.jpeg?' + Date.now()}).appendTo('body') } setInterval(reload_desktop, 2000) function send_click(event) { var fac = this.naturalWidth / this.width $.get('/click', {x: 0|fac * event.clientX, y: 0|fac * event.clientY}) } $('body').on('click', 'img', send_click) </script> </body></html></span>
4.simplesvr.py编写如下:
from flask import Flaskfrom flask import send_filefrom flask import requestimport sysfrom StringIO import StringIOimport pyscreenshotfrom Quartz.CoreGraphics import CGEventCreateMouseEventfrom Quartz.CoreGraphics import CGEventPostfrom Quartz.CoreGraphics import kCGEventMouseMovedfrom Quartz.CoreGraphics import kCGEventLeftMouseDownfrom Quartz.CoreGraphics import kCGEventLeftMouseDownfrom Quartz.CoreGraphics import kCGEventLeftMouseUpfrom Quartz.CoreGraphics import kCGMouseButtonLeftfrom Quartz.CoreGraphics import kCGHIDEventTapapp = Flask(__name__)@app.route('/')def index(): return app.send_static_file('index.html')def mouseEvent(type, posx, posy): theEvent = CGEventCreateMouseEvent(None, type, (posx,posy), kCGMouseButtonLeft) CGEventPost(kCGHIDEventTap, theEvent)def mousemove(posx,posy): mouseEvent(kCGEventMouseMoved, posx,posy);def mouseclick(posx,posy): #mouseEvent(kCGEventMouseMoved, posx,posy); #uncomment this line if you want to force the mouse to MOVE to the click location first (i found it was not necesary). mouseEvent(kCGEventLeftMouseDown, posx,posy); mouseEvent(kCGEventLeftMouseUp, posx,posy);@app.route('/desktop.jpeg')def desktop(): screen = pyscreenshot.grab() buf = StringIO() screen.save(buf, 'JPEG', quality=75) buf.seek(0) return send_file(buf, mimetype='image/jpeg')@app.route('/click')def click(): try: x = int(request.args.get('x')) y = int(request.args.get('y')) except TypeError: return 'error' mouseclick(x, y); return 'done'if __name__ == '__main__': app.run(host='0.0.0.0', port=7080, debug=True)
5.启动服务器:python simplesvr.py
6.打开ipad上的safari,输入http://<your server ip address>:7080/, 看到截屏了吧,而且是不断再刷新显示的哦!!
(完)
喜爱python,就行动起来吧~
0 0
- python实现在 Mac 10.9 远程桌面截屏抓取
- VNC 抓取远程桌面
- Python 实现腾讯新闻抓取
- python多线程实现抓取网页
- 人民日报语料库抓取python实现
- python 日志增量抓取实现
- python实现爬虫抓取段子
- Python 实现腾讯新闻抓取
- 在Mac(Unix)下Python交互式Tab键补全实现
- 在 MacOSX 上实现多用户远程桌面
- 在 MacOSX 上实现多用户远程桌面
- 在动态ip下实现远程桌面连接
- python 抓取图片保存在本地
- 用Python实现页面内容抓取
- python实现美空图片抓取机器人
- Python实现爬虫抓取OJ代码
- Python 实现股票数据的实时抓取
- python 实现网站图片抓取小爬虫
- sqlserver单个用户 解决方法
- linux下清空某文件命令,vi删除多行命令
- 命令行SVN全部操作
- Redis学习1之redis单节点的安装和使用
- boot.img提取
- python实现在 Mac 10.9 远程桌面截屏抓取
- iOS开发注销操作后更改rootViewController的问题
- Android开发中相见恨晚的方法、类或接口
- (5)Dialog用法介绍
- [待完善]提升Android Studio的编译速度
- 内核Alsa之ASoC
- 从源码角度分析Android中UID与GID的分配
- keil c 的错误error C141: syntax error near '='
- JAVA嵌入运行Groovy脚本