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代码实现截图识字

有次网上down了个截图实识的软件,发现一天只能用10次要钱才能解锁免费,很气,作为一个菜鸡怎么能忍受

于是自己用python写了个简单的小工具,分享给大家

代码如下: 先安装库

from PIL import ImageGrab,Image
import keyboard #监控键盘
from time import sleep
import sys
from aip import AipOcr

class API():
  def picture2Text(filePath):

    API_ID = '######'
    API_KEY = '#######'
    SECRET_KEY = '######'

    aipocr = AipOcr(API_ID, API_KEY, SECRET_KEY)

    image = API.getFileContent(filePath)
    texts = aipocr.basicGeneral(image)
    allTexts = ''
    for words in texts['words_result']:
      allTexts = allTexts + ''.join(words.get('words',''))
    return allTexts
   #  print(texts)

  def getFileContent(a):
    with open(a,'rb') as fp:
      return fp.read()

def seceenShot():
  '''用于获取剪切板图片信息并保存到本地'''
#ctrl+alt+a 这个看你用什么截图,qq是个
  if keyboard.wait(hotkey='ctrl+alt+a') == None:
    if keyboard.wait(hotkey='enter') == None:
      sleep(0.01)
      im_gray = ImageGrab.grabclipboard()
#      print(im_gray)
      if isinstance(im_gray,Image.Image):
        im_gray.save("250.jpg")
      else:
        print('请重新截图')
  else:
    print('请使用qq截图,小逗比(记得截图后按enter)')
if __name__ == '__main__':
  for _ in range(sys.maxsize):
    seceenShot()
    test = API.picture2Text(r'250.jpg')
    print(test)

上述11,12,13的是百度云的工单账号和密钥,如图下,自己可以注册的免费

33行和34行是监控键盘的

33行是开始截图:ctrl+alt+a (这个看自己的截图工具是什么键就换成什么)

34行是结束:enter (一定要按enter结束截图)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • python实现截取屏幕保存文件,删除N天前截图的例子

    我就废话不多说,直接上代码吧! from PIL import ImageGrab import time import schedule import os import shutil import datetime days = -3 # 截屏 def savepic(): im = ImageGrab.grab() now = time.strftime("%Y_%m_%d_%H_%M_%S", time.localtime()) day = time.strftime(&quo

  • Python实现屏幕截图的代码及函数详解

    废话不多说,先给大家看下python实现屏幕截图的代码,具体代码如下所述: from selenium import webdriver import time def capture(url, save_fn="capture.png"): browser = webdriver.Firefox() # Get local session of firefox browser.set_window_size(1200, 900) browser.get(url) # Load pag

  • 对Python获取屏幕截图的4种方法详解

    Python获取电脑截图有多种方式,具体如下: PIL中的ImageGrab模块 windows API PyQt pyautogui PIL中的ImageGrab模块 import time import numpy as np from PIL import ImageGrab img = ImageGrab.grab(bbox=(100, 161, 1141, 610)) img = np.array(img.getdata(), np.uint8).reshape(img.size[1]

  • Python实现屏幕截图的两种方式

    使用windows API 使用PIL中的ImageGrab模块 下面对两者的特点和用法进行详细解释. 一.Python调用windows API实现屏幕截图 好处是 灵活 速度快 缺点是: 写法繁琐 不跨平台 import time import win32gui, win32ui, win32con, win32api def window_capture(filename): hwnd = 0 # 窗口的编号,0号表示当前活跃窗口 # 根据窗口句柄获取窗口的设备上下文DC(Divice C

  • Python编写屏幕截图程序方法

    正在编写的程序用的很多Windows下的操作,查了很多资料.看到剪切板的操作时,想起以前想要做的一个小程序,当时也没做,现在正好顺手写完. 功能:按printscreen键进行截图的时候,数据保存在剪切板里面,很不方便.比如游戏的时候截一个瞬间的图片,但你不能退出游戏保存图片,不方便多次截图.而我也不喜欢安装各种软件,所以准备写这个工具. 思路:一个是自定义快捷键,截图,保存.考虑到很可能各种冲突,取消.然后还是用按printscreen来截图,然后从剪切板读取图片数据,保存.想法是,先监听键盘

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

    最近各地中小学都在开展线上教学,有些不自觉的小朋友们用电脑在线学习的时候会趁家长不在的时候偷偷玩游戏.看漫画. 本程序screenshot.py就是用来监控学生机(windows系统)屏幕活动的一个小脚本. 首先在学生机上安装python3环境.另外需要安装pyautogui: pip install pyautogui 学生机启动后台进程方法:在学生机上建立一个批处理文件,用无窗口python运行命令,以下根据你自己的python安装位置和脚本所在文件夹调整.. c:\python37\pyt

  • Python基于ssh远程连接Mysql数据库操作

    目录 背景 安装支持库 连接Mysql 自定义查询函数 背景 如果需要访问远程服务器的Mysql数据库,但是该Mysql数据库为了安全期间,安全措施设置为只允许本地连接(也就是你需要登录到该台服务器才能使用),其他远程连接是不可以直接访问,并且相应的端口也做了修改,那么就需要基于ssh来连接该数据库.这种方式连接数据库与Navicat里面界面化基于ssh连接一样. Navicat 连接数据库 安装支持库 如果要连接Mysql,首先需要安装pymysql pip install pymysql 安

  • python获取局域网占带宽最大3个ip的方法

    本文实例讲述了python获取局域网占带宽最大3个ip的方法.分享给大家供大家参考.具体实现方法如下: import re import urllib url = 'http://admin:netcenter@192.168.0.1/analyze.cgi?page=1&px=3&sf=1' a = urllib.urlopen(url).read() ip = re.findall(r'192\.168\.\d+\.\d+', a, re.M) ip1 = ip[0] ip2 = ip

  • python使用socket远程连接错误处理方法

    本文实例讲述了python使用socket远程连接错误处理方法.分享给大家供大家参考.具体如下: import socket, sys host = sys.argv[1] textport = sys.argv[2] filename = sys.argv[3] try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except socket.error, e: print "Strange error creating sock

  • Python的批量远程管理和部署工具Fabric用法实例

    本文实例讲述了Python的批量远程管理和部署工具Fabric用法.分享给大家供大家参考.具体如下: Fabric是Python中一个非常强大的批量远程管理和部署工具,常用于在多个远程PC上批量执行SSH任务. 常见的使用方法大概总结如下: 1. 首先,要将批量执行的任务写入到一个fabfile.py中, 复制代码 代码如下: # -*- coding:utf-8 -*-    from fabric.api import run, local, roles, env, cd  env.host

  • python 实现自动远程登陆scp文件实例代码

     python 实现自动远程登陆scp文件实例代码 实现实例代码: #!/usr/bin/expect if {$argc!=3} { send_user "Usage: $argv0 {path1} {path2} {Password}\n\n" exit } set path1 [lindex $argv 0] set path2 [lindex $argv 1] set Password [lindex $argv 2] spawn scp ${path1} ${path2} e

  • python fabric实现远程部署

    python fabric实现远程部署 需求描述 在多人协同开发项目的过程中,几乎每天我们都要提交代码到git服务器,然后部署到测试服务器,每天都在敲那重复的几行命令,实在是无趣.怎么办?运维自动化!接下来就说说fabric这玩意儿,替我们完成一些重复繁杂的工作,相信你会跟我一样喜欢上它的! 本文项目背景 我们这次做的项目是用的django框架,每天我们提交代码到git服务器后,都要手动上传代码到测试服务器,然后执行一系列django框架的命令.每天都要浪费10多分钟的时间,做着重复的劳动,这些

  • python循环监控远程端口的方法

    本文实例讲述了python循环监控远程端口的方法.分享给大家供大家参考.具体如下: 在ip.txt中每行一个ip地址和端口号,代码可循环监控这些ip地址的指定端口是否正常 #!/usr/bin/env python # -*- coding: gbk -*- import socket,time while 1: file_obj = open('ip.txt') for line in file_obj: try: sc=socket.socket(socket.AF_INET,socket.

  • Python实现SSH远程登陆,并执行命令的方法(分享)

    在自动化测试过程中,比较常用的操作就是对远程主机进行操作,如何操作呢?使用SSH远程登陆到主机,然后执行相应的command即可. 使用Python来实现这些操作就相当简单了.下面是测试code. 代码如下:(code运行环境:python27+eclipse+pydev) import paramiko def sshclient_execmd(hostname, port, username, password, execmd): paramiko.util.log_to_file("par

  • Python实现的远程文件自动打包并下载功能示例

    本文实例讲述了Python实现的远程文件自动打包并下载功能.分享给大家供大家参考,具体如下: 一 点睛 在Linux系统集群运营当中,时常需要批量远程执行Linux命令,并且双向同步文件的操作. 本示例通过使用spawn()方法执行ssh.scp 命令的思路来实现. 二 代码 import pexpect import sys ip="192.168.0.104" user="root" passwd="123456" target_file=&

随机推荐