Python 实现局域网远程屏幕截图案例
作者:方工 发布时间:2021-05-13 13:43:43
标签: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结束截图)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/onestab/article/details/104511927
0
投稿
猜你喜欢
- 开启Web服务1.基本方式Python中自带了简单的服务器程序,能较容易地打开服务。在python3中将原来的SimpleHTTPServe
- user-define-session-inc.php文件代码:<?php function mysession_open($save
- Python获取电脑截图有多种方式,具体如下:PIL中的ImageGrab模块windows APIPyQtpyautoguiPIL中的Im
- 请问如何处理Oracle中较大的文本数据?我们可在ASP中予以解决,如在Oracle8i中文版中,建立数据表:CREATE TABLE SY
- 何为质数: 只能被1 和 自身 整除的数;方法: 利用js中求模, 看是否有余数. ---> 3%2 = 1; 5%2 = 3....
- 1. 什么是 CSV 文件CSV(逗号分隔值)文件是使用逗号分隔信息的文本文件。该文件的每一行都是一条数据记录,也就意味着它可以用于以表格的
- asp分页,是学习使用asp编程经常遇到的问题,也算是一个经典的问题。本文介绍了一个asp分页源代码例子,希望对初学者有所帮助,本程序文件名
- 事物绝非十全十美总有强差人意的一面,之前针对浮动分析了其引起文本重影的怪异问题,而作为浮动布局的最佳搭档定位布局也存在一定的缺陷。围绕着定位
- <% '#######以下是一个类文件,下面的注解是调用类的方法####################
- 配置环境: 1、数 据 库:Oracle 8i R2 (8.1.7) for NT 企业版 2、安装路径:C:ORACLE 实现方法: 1.
- 最近一个项目中遇到ASP对FoxPro库表(*.DBF)的操作问题。现实中确有许多应用软件使
- 如果要得到返回值,需要用Command的方法。 首先说明,返回值有两种。一种是在存储过程中直接return一个值,就象C和VB的函数返回值那
- 1 丰富的二维动画/图形和视音频表现 Rich 2D animation/graphics with audio and video这点毋庸
- 在asp中利用excel的一个方法是将excel文件作为一个数据库进行链接,然后的操作和对access数据库操作类似。但是这个方法不是总能有
- 发现很多朋友对 CSS 的优先权不甚了解,规则很简单。需要说明的一点,如果你的样式管理需要深层判断 CSS 的优先权,更应反思自己的 CSS
- Jupyter Notebook读取csv文件失败1.IndentationError: expected an indented bloc
- 代码如下:<% '--------定义部份------------------ Dim XH_P
- 一个什么都不懂的家伙非跟我要个sql查询器 随便写了一个,当然为了数据安全,要过滤掉一个sql关键词和系统中的一些表了 哦,对了,里面的一些
- 清除视图缓存,就是清除D:\phpStudy\WWW\BCCKidV1.0\storage\framework\views\002f30b1
- 使用ENUM代替字符串类型有时候, 可以通过使用ENUM来代理常规的字符串类型。一个ENUM列能够存储65535个不同的字符串值,MySQL