当前位置: 首页 > 编程笔记 >

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

步博艺
2023-03-14
本文向大家介绍Python 实现局域网远程屏幕截图案例,包括了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结束截图)

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

 类似资料:
  • 在Linux下有很多屏幕载图的工具,下面简单介绍一下: 在GNOME桌面中自带了一个屏幕截图工具,位于“动作”栏内。该工具功能很少,只能截取当前屏幕。 在GMIP中也可截图,在“文件”--“获取”菜单下有一个“屏幕抓图”选项可进行屏幕截图。它可截取任意图窗口的内容,并自动输入到GMIP中,我们可方便地进行处理和保存。 安装ImageMagick软件,它有一个工具叫import可用于屏幕截图。该工具

  • 点击按钮进行截屏,可以将截屏图像保存到相册中。 作者说:听说会和苹果的策略有冲突,应用如果上架可能会被拒绝。这个估计是看人品了吧。经过测试发现,如果先弹出对话框,然后再截屏,似乎并不能把对话框也给保存下来。 [Code4App.com]

  • 问题内容: 是否可以使用JavaScript截取网页的屏幕截图,然后将其提交回服务器? 我不太担心浏览器的安全性问题。等,因为实施将针对HTA。但是有可能吗? 问题答案: 我已经通过使用ActiveX控件为HTA完成了此操作。在VB6中构建控件以截取屏幕截图非常容易。我必须使用keybd_event API调用,因为SendKeys无法执行PrintScreen。这是该代码: 这只会使您到达将窗口

  • 我已经在活动中创建了处理程序。这个Hanlder负责在10秒后拍摄屏幕截图。在运行方法中,我使用了虽然(标志==true)和屏幕捕获util标志==false,但这卡住了我的活动。我不能工作。它把屏幕拍摄一遍又一遍的相同的图像,因为动作被卡住了。我如何可以工作与我的屏幕和我正在做的处理程序采取屏幕截图后10秒?而循环卡住了我的应用程序。 它可以拍照,但我无法进行我的活动。

  • 问题内容: 我要实现的是从python中的任何网站获取网站截图。 环境:Linux 问题答案: 在Mac上,有webkit2png,在Linux+KDE上,可以使用khtml2png。我已经尝试了前者,并且效果很好,并且听说后者已投入使用。 我最近遇到了QtWebKit,它声称是跨平台的(我猜Qt将WebKit卷入了他们的库中)。但是我从未尝试过,所以我无法告诉您更多信息。 QtWebKit链接显