Child Guard管控孩子电脑软件是一款电脑控制软件,如果孩子需要用到电脑学习是非常好的事情,但如何防治他们偷偷用电脑玩游戏呢?使用这款软件,就能轻松对孩子的游戏行为进行管控,让他们专心学习。
管控孩子电脑软件是一款用于管控上网课的孩子电脑程序,在之前的版本上编译了exe执行程序,为了简化,只编译了一个孩子电脑的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.exe运行所在目录
'tts',发指定的文本消息给孩子的电脑屏幕,并语音播报给消息内容
'net_info',返回孩子pc上的网络信息内容
'is_admin', 判断ChildGuard.exe是否是以管理员模式运行的
'GetSystemPowerStatus',判断电池电量等信息,方便今后的其他应急程序准备
'uptime', 获得电脑的运行时间
'create_time',获得ChildGuard.exe的运行时间
'username', 获得当前ChildGuard.exe是以哪个用户运行的
'disk_c_usage', 获得c盘的利用率
'disk_io_counters', 获得当前磁盘的io情况,建议间隔运行2次,取差值÷间隔时间,获得io流量
'net_io_counters', 获得网络io情况
'snapScreen',抓电脑屏幕
'snapCam', 抓摄像头拍照
'snapMerge', 抓电脑屏幕并抓摄像头拍照,然后把两者拼接到一个图片上
'snapAudio',抓电脑的麦克风录音一段指定时长(默认10s)
'll',类似linux的ls -l的输出信息
待完善支持功能
1、热更新
2、获得微信访问指定网址的内容。
目前GetForegroundWindow获得窗口句柄
再GetWindowText用窗口句柄获得标题,
用GetWindowThreadProcessId获得pid
用WMI接口用pid获得命令行信息
基本能覆盖各个浏览器标题内容,满足了大部分需求。
但如果用微信打开的网页链接,或者小程序之类的,这个标题text或者页面内容获得不到。
还在尝试别的思路,捕获这个信息
3、防被杀
目前孩子小,还不会任务管理器,将来可能就会了。
要考虑病毒方式双进程互动
4、目前用的是xmlrpc.server.SimpleXMLRPCServer,还没有身份验证机制,内网使用还好,不建议映射端口挂公网
补充下使用技巧
1、ChildControl.ini中的轮询间隔
设置为30s,目前来看是折中后,比较合适的。
性能和及时性上,都可以保障
2、snap的文件太多了,list会耗时太长,
这个需要定期清理下
写了这个archive_snap_pic.py程序,可以定期清理
3、snap后的照片分析
analyze_pic.py程序
用孩子电脑摄像头抓拍了照片,可以用opencv简单判断下几个状态:
a、笔记本电脑合上了;b、孩子离开座位,没在电脑前;c、孩子坐在电脑前
目前还在研究opencv的玩法,大致只实现了上述的几个内容
4、源码方式执行:
需要依赖的几个包:
python.exe -m pip install pyinstaller PyQt5 opencv-python pywin32 Pillow baidu-aip psutil pygame pydub
去网站
找到对应自己电脑版本的PyAudio模块,下载下来,然后安装它
python.exe -m pip install PyAudioxxxxx.whl