腾牛·下载

显示更多 收起

ChildGuard(孩子上网课监督提醒工具)

大小:48.7M语言:中文 类别:远程控制系统:WinAll
版本:v1.0 绿色版时间:2020-04-18
应用介绍

ChildGuard是一款非常好用的孩子上网课时监督的软件,该软件不仅能够看到孩子的一举一动和电脑运行的各种程序,还能够直接发送对话提醒孩子,能够让孩子更加专心的上网课,有需要的家长们不要错过了,欢迎下载使用!

开发说明

为了简化,只编译了一个孩子电脑的server端,以及一个家长端的控制端。

当然,也可以把控制端放在孩子电脑上,一并执行

使用说明

now:取得当前孩子pc的时间

md5sum:给定文件名,返回对应的md5值(用于校验文件比对)

wf: 写data给到指定文件

rf: 读文件内容

my_exec : 执行指定的dos命令,返回标准输出的内容,和错误输出的内容

'killProcess', 给定pid,杀进程

'getProcess', 不加参数,返回所有进程信息;加pid返回pid进程信息;加caption信息,返回caption的进程信息

'getActiveProcName', 返回当前前台的进程信息

'cpu_usage', 返回当前cpu利用率

'mem_usage', 返回当前内存利用率

'dimm_info',返回当前物理内存条情况

'msg', 发指定的文本消息给孩子的电脑屏幕,并等待孩子点“确定”

'msgImm',发指定的文本消息给孩子的电脑屏幕,不等孩子点,直接返回

'get_path',获得当孩子pc上ChildGuard.py运行所在目录

'tts',发指定的文本消息给孩子的电脑屏幕,并语音播报给消息内容

'net_info',返回孩子pc上的网络信息内容

'is_admin', 判断ChildGuard.py是否是以管理员模式运行的

'GetSystemPowerStatus',判断电池电量等信息,方便今后的其他应急程序准备

'uptime', 获得电脑的运行时间

'create_time',获得ChildGuard.py的运行时间

'username', 获得当前ChildGuard.py是以哪个用户运行的

'disk_c_usage', 获得c盘的利用率

'disk_io_counters', 获得当前磁盘的io情况,建议间隔运行2次,取差值÷间隔时间,获得io流量

'net_io_counters', 获得网络io情况

'snapScreen',抓电脑屏幕

'snapCam', 抓摄像头拍照

'snapMerge', 抓电脑屏幕并抓摄像头拍照,然后把两者拼接到一个图片上

'snapAudio',抓电脑的麦克风录音一段指定时长(默认10s)

'll',类似linux的ls -l的输出信息

程序介绍

本程序server端

server的daemon端,也即是ChildGuard.py,默认监听在8888端口。

运行时,会申请管理员身份运行,如果没有管理员权限,也可以运行。

其用到了MyTTS.py模块,该模块主要负责调用百度的api接口,文字转语音,然后播放它,以及语音转文字(暂未用)。

百度的API还不错,比讯飞的免费调用次数给的多些,请自行申请对应的相关APP_ID、API_KEY、SECRET_KEY信息

由于wav的pcm格式转mp3用的是pydub的AudioSegment,这个是调用的ffmpeg来实现,要先下载ffmpeg,并把它放在PATH能够得着的地方。

下载地址:http://ffmpeg.org/download.html

监听pc麦克风用的是pyaudio模块,默认在windows上,直接pip装不上,建议直接下载对应的windows版本下载到本地。

再pip install PyAudio*.whl来进行安装

Server端目前有个问题,就是必须在前台运行,不能后台(比如计划任务调用,比如windows服务调用)。

如果后台运行的话,相关的msg接口,相关的获得前台进程接口,都有问题(这个是windows安全性的限制),

目前还在研究偷explorer.exe的token,然后用它token运行ChildGuard.py,但各种坑,还在趟

(OpenProcess,OpenProcessToken,DuplicateTokenEx,CreateProcessWithTokenW)

1.2 本程序的client端

客户端部分,有几个:

1.2.1 ChildControl.py控制部分

这个我是放在家里的树莓派3B上运行,它负责死循环,每30s检查一下孩子pc的状态:

①获得当前运行的是什么程序,程序的标题是什么

②如果当前的前台程序在黑名单,那么kill它

③检查360浏览器的标题,含有相关关键字,kill它

④检查腾讯视频是否存在,kill它

⑤每30s抓拍一次电脑屏幕,以及摄像头抓拍一次

⑥每30s抓一端10s的麦克风录音

1.2.2 rpc_cmd.py的命令行cli部分

这个可以放在我的电脑上运行,或者放在树莓派上运行类似这样:

pi@raspberrypi:/var/www/html$ ./rpc_cmd.py 

checking host=stanleypc,port=8888

http://stanleypc:8888>help

func=s.help()

['now', 'md5sum', 'wf', 'rf', 'my_exec', 'killProcess', 'getProcess', 'getActiveProcName', 'cpu_usage', 'mem_usage', 'dimm_info', 'msg', 'msgImm', 'get_path', 'tts', 'net_info', 'is_admin', 'GetSystemPowerStatus', 'uptime', 'create_time', 'username', 'disk_c_usage', 'disk_io_counters', 'net_io_counters', 'snapScreen', 'snapCam', 'snapMerge', 'snapAudio', 'll', 'exit', 'help', 'version']

http://stanleypc:8888>version

func=s.version()

v0.8.6.20200410

http://stanleypc:8888>tts(别玩游戏啦,快做作业!)

tts这个用得多,主要是会在它屏幕上显示一个对话框,上面有你发过去的文字,然后会在他电脑上,语音播报一下这段文字

1.2.3 update_childguard.py更新程序

这个会把我电脑里面最新的ChildGuard.py程序,去覆盖当前孩子pc上的。

但如何热更新,目前还摸索中。

现在只能是update_childguard.py完了后,

用ssh进孩子的电脑,netstat -ano|findstr 8888查看是哪个pid占8888端口,

然后taskkill /f /pid <PID>把ChildGuard.py进程杀掉

然后teamviewer连进孩子的电脑,再图像界面下,启动ChildGuard.py(前面ssh里面起的话,算后台起,API资源受限)

1.2.4 rpc_trans_file.py批量文件传送

这个会把我电脑to_trans/目录下的所有文件,都发到孩子pc上去

    厂商名称:
用户评论
取消
跟帖评论
    更多评论
    相关教程
    猜你喜欢
      本类排行
      其它版本