/中文/
/中文/
/中文/
/英文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
ChildGuard是一款非常好用的孩子上網(wǎng)課時監(jiān)督的軟件,該軟件不僅能夠看到孩子的一舉一動和電腦運行的各種程序,還能夠直接發(fā)送對話提醒孩子,能夠讓孩子更加專心的上網(wǎng)課,有需要的家長們不要錯過了,歡迎下載使用!
為了簡化,只編譯了一個孩子電腦的server端,以及一個家長端的控制端。
當然,也可以把控制端放在孩子電腦上,一并執(zhí)行
now:取得當前孩子pc的時間
md5sum:給定文件名,返回對應(yīng)的md5值(用于校驗文件比對)
wf: 寫data給到指定文件
rf: 讀文件內(nèi)容
my_exec : 執(zhí)行指定的dos命令,返回標準輸出的內(nèi)容,和錯誤輸出的內(nèi)容
'killProcess', 給定pid,殺進程
'getProcess', 不加參數(shù),返回所有進程信息;加pid返回pid進程信息;加caption信息,返回caption的進程信息
'getActiveProcName', 返回當前前臺的進程信息
'cpu_usage', 返回當前cpu利用率
'mem_usage', 返回當前內(nèi)存利用率
'dimm_info',返回當前物理內(nèi)存條情況
'msg', 發(fā)指定的文本消息給孩子的電腦屏幕,并等待孩子點“確定”
'msgImm',發(fā)指定的文本消息給孩子的電腦屏幕,不等孩子點,直接返回
'get_path',獲得當孩子pc上ChildGuard.py運行所在目錄
'tts',發(fā)指定的文本消息給孩子的電腦屏幕,并語音播報給消息內(nèi)容
'net_info',返回孩子pc上的網(wǎng)絡(luò)信息內(nèi)容
'is_admin', 判斷ChildGuard.py是否是以管理員模式運行的
'GetSystemPowerStatus',判斷電池電量等信息,方便今后的其他應(yīng)急程序準備
'uptime', 獲得電腦的運行時間
'create_time',獲得ChildGuard.py的運行時間
'username', 獲得當前ChildGuard.py是以哪個用戶運行的
'disk_c_usage', 獲得c盤的利用率
'disk_io_counters', 獲得當前磁盤的io情況,建議間隔運行2次,取差值÷間隔時間,獲得io流量
'net_io_counters', 獲得網(wǎng)絡(luò)io情況
'snapScreen',抓電腦屏幕
'snapCam', 抓攝像頭拍照
'snapMerge', 抓電腦屏幕并抓攝像頭拍照,然后把兩者拼接到一個圖片上
'snapAudio',抓電腦的麥克風錄音一段指定時長(默認10s)
'll',類似linux的ls -l的輸出信息
本程序server端
server的daemon端,也即是ChildGuard.py,默認監(jiān)聽在8888端口。
運行時,會申請管理員身份運行,如果沒有管理員權(quán)限,也可以運行。
其用到了MyTTS.py模塊,該模塊主要負責調(diào)用百度的api接口,文字轉(zhuǎn)語音,然后播放它,以及語音轉(zhuǎn)文字(暫未用)。
百度的API還不錯,比訊飛的免費調(diào)用次數(shù)給的多些,請自行申請對應(yīng)的相關(guān)APP_ID、API_KEY、SECRET_KEY信息
由于wav的pcm格式轉(zhuǎn)mp3用的是pydub的AudioSegment,這個是調(diào)用的ffmpeg來實現(xiàn),要先下載ffmpeg,并把它放在PATH能夠得著的地方。
下載地址:http://ffmpeg.org/download.html
監(jiān)聽pc麥克風用的是pyaudio模塊,默認在windows上,直接pip裝不上,建議直接下載對應(yīng)的windows版本下載到本地。
再pip install PyAudio*.whl來進行安裝
Server端目前有個問題,就是必須在前臺運行,不能后臺(比如計劃任務(wù)調(diào)用,比如windows服務(wù)調(diào)用)。
如果后臺運行的話,相關(guān)的msg接口,相關(guān)的獲得前臺進程接口,都有問題(這個是windows安全性的限制),
目前還在研究偷explorer.exe的token,然后用它token運行ChildGuard.py,但各種坑,還在趟
(OpenProcess,OpenProcessToken,DuplicateTokenEx,CreateProcessWithTokenW)
1.2 本程序的client端
客戶端部分,有幾個:
1.2.1 ChildControl.py控制部分
這個我是放在家里的樹莓派3B上運行,它負責死循環(huán),每30s檢查一下孩子pc的狀態(tài):
①獲得當前運行的是什么程序,程序的標題是什么
②如果當前的前臺程序在黑名單,那么kill它
③檢查360瀏覽器的標題,含有相關(guān)關(guān)鍵字,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(別玩游戲啦,快做作業(yè)!)
tts這個用得多,主要是會在它屏幕上顯示一個對話框,上面有你發(fā)過去的文字,然后會在他電腦上,語音播報一下這段文字
1.2.3 update_childguard.py更新程序
這個會把我電腦里面最新的ChildGuard.py程序,去覆蓋當前孩子pc上的。
但如何熱更新,目前還摸索中。
現(xiàn)在只能是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/目錄下的所有文件,都發(fā)到孩子pc上去
關(guān)于騰牛 | 聯(lián)系方式 | 發(fā)展歷程 | 版權(quán)聲明 | 下載幫助(?) | 廣告聯(lián)系 | 網(wǎng)站地圖 | 友情鏈接
Copyright 2005-2022 QQTN.com 【騰牛網(wǎng)】 版權(quán)所有 鄂ICP備2022005668號-1 | 鄂公網(wǎng)安備 42011102000260號
聲明:本站非騰訊QQ官方網(wǎng)站 所有軟件和文章來自互聯(lián)網(wǎng) 如有異議 請與本站聯(lián)系 本站為非贏利性網(wǎng)站 不接受任何贊助和廣告