Python 实现局域网远程屏幕截图

最近各地中小学都在开展线上教学,有些不自觉的小朋友们用电脑在线学习的时候会趁家长不在的时候偷偷玩游戏、看漫画。
本程序screenshot.py就是用来监控学生机(windows系统)屏幕活动的一个小脚本。
首先在学生机上安装python3环境。另外需要安装pyautogui:

pip install pyautogui

学生机启动后台进程方法:在学生机上建立一个批处理文件,用无窗口python运行命令,以下根据你自己的python安装位置和脚本所在文件夹调整。。

c:\python37\pythonw.exe d:\py\screenshot.py 1>1.txt 2>2.txt
from http.server import BaseHTTPRequestHandler, HTTPServer
import pyautogui, socket
# for windows, screenshot.py
# 家长监控地址: http://192.168.1.3:8009/
PORT = 8008
# 获取学生机局域网地址
IP = socket.gethostbyname(socket.gethostname())
#windows
class myHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        img = pyautogui.screenshot() #屏幕截图
        if img:
            self.send_response(200) #HTTP 状态码
            self.send_header('Content-Type', 'image/png')
            self.end_headers()
            img.save(self.wfile, 'PNG') # 写入HTTP 响应流文件

def main():
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        #判断当前端口是否已经打开
        result = sock.connect_ex((IP, PORT))
        portopen = result == 0
        sock.close()
        if not portopen:
            #启动web服务器,用自定义的响应处理类
            server = HTTPServer((IP, PORT), myHandler)
            server.serve_forever() # 服务器持续监听
    except:
        pass

if __name__ == '__main__':
    main()

WIFI环境下,在家长机器或手机浏览器中输入下面的网址(假设学生机IP为192.168.1.3):

http://192.168.1.3:8008/

就可看到学生当前的屏幕活动。可刷新。
人生苦短,我用Python.

你可能感兴趣的:(Python)