IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 用脚本管控小朋友的上网行为可好? -> 正文阅读

[Python知识库]用脚本管控小朋友的上网行为可好?

windows上的应用商店很难禁上,小朋友在家老是在上面下载游戏嗨皮,想着能不能将电脑进行管控呢?娱乐一下,供参考

主要管理功能:

  1. 不能打开应用商店,防止下载游戏,任何时间如有打开store将强制关闭电脑
  2. 在管控时间段时(即txt中写明的前面有标1时间段)内打开任意浏览器,将强制关闭电脑
  3. 记录小朋友在电脑上运行的应用或浏览器中浏览的内容标题

再设置为开机自启动,就可以有效的实现管控上网行为了.

import ctypes
ctypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 6)
    
import win32gui, os, datetime
from time import sleep

'''
# 此脚本的作用,只有在指定的时间段内才可以使用电脑找开浏览器和应用商城,不然就会自动关机
# 时间段的编辑,可以有能过WPS office云空间进行设置
# 在本地盘上新建有一txt档,里面有写明那些时间段是可用电脑浏览器和应用商店,我自己是wps会员,可自动将此文件与云端同步,可实现随时对txt的修改,即时间的管控.
格式如下:前面的1代表此时间段用用,0代理不可用
1-10:30-11:00
1-11:30-12:00
1-13:00-14:00
1-14:30-15:00
1-15:30-16:00
1-16:30-17:00
1-17:00-18:00
1-19:00-21:00

主要管理功能:
1. 不能打开应用商店,防止下载游戏,任何时间如有打开store将强制关闭电脑
2. 在管控时间段时(即txt中写明的前面有标1时间段)内打开任意浏览器,将强制关闭电脑
3. 记录小朋友在电脑上运行的应用或浏览器中浏览的内容标题
'''


def get_time_range():
    # 获取可用时间段
    path = 'E:\\BaiduNetdiskWorkspace\\BaiduNetdiskWorkspace\\Other\\time.txt'
    available_time_range = list()
    try:
        f = open(path, 'r')
    except:
        print('同步时发生异常,将等待2s后重试')
        sleep(2)
        f = open(path, 'r')
        
    lines = f.readlines()
    for line in lines:
        line_list = line.strip().split('-')
        # 将以上的可用时间段转到为datetime的格式
        flag = int(line_list[0])
        start_t = datetime.datetime.strptime(str(datetime.datetime.now().date()) + line_list[1], '%Y-%m-%d%H:%M')
        end_t = datetime.datetime.strptime(str(datetime.datetime.now().date()) + line_list[2], '%Y-%m-%d%H:%M')
        available_time_range.append([flag, start_t, end_t])
        
    return available_time_range



# 获取最前窗口句柄
hwnd = win32gui.GetForegroundWindow()
# 设置为最前窗口
win32gui.SetForegroundWindow(hwnd)
# 获取窗口标题
win32gui.GetWindowText(hwnd)
# 通过类名或查标题找窗口
hwnd = win32gui.FindWindow(None, "C:\Windows\system32\cmd.exe")
# 显示窗口
win32gui.ShowWindow(hwnd,1)
# 第二个参数说明如下


from win32gui import *


# 获取所有活动窗口的标题
def get_window_title():
    titles = set()
    def foo(hwnd,nouse):
        # 去掉下面这句就所有都输出了,但是我不需要那么多
        if IsWindow(hwnd) and IsWindowEnabled(hwnd) and IsWindowVisible(hwnd):
            titles.add(GetWindowText(hwnd))
        
    EnumWindows(foo, 0)
    titles = [t for t in titles if t]
    titles.sort()
    return titles


def main():
    cmd = 'shutdown -s -t 1 -f'
    total = 1
    
    while True:
        ctypes.windll.user32.ShowWindow(ctypes.windll.kernel32.GetConsoleWindow(), 6)
    
        titles = get_window_title()
        availabl_time_range = get_time_range()
        if availabl_time_range == []:
            total = 1
        
        # 获取当前时间
        now_time = datetime.datetime.now()
        minute = now_time.minute # 分
        second = now_time.second # 秒
        microsecond = now_time.microsecond # 微秒
        
        # 每10分钟记录一记次录一下当前打开的应用情况,保存在record.txt档中
        if second == 0 and minute%10 == 0 and microsecond%12345 == 0:
            # 打开record用于记录打开的应用情况
            with open('E:\\BaiduNetdiskWorkspace\\BaiduNetdiskWorkspace\\Other\\record.txt', 'a+', encoding='utf-8') as f:
                t = now_time.ctime()
                content = f'{t} {microsecond}'
                for title in titles:
                    content = f'{content}\n{title}'
                content = content + '\n\n'
                f.write(content)
                # 确保同10分钟内只记录一次
                sleep(0.1)
            
        # 对浏览器在管控时间段内进行处理
        for dt_time in availabl_time_range:
            flag, start_t, end_t = dt_time
            if flag == 0:
                if  start_t < now_time < end_t:
                    for t in titles:
                        if 'Microsoft? Edge' in t or 'Google Chrome' in t:
                            print(f'有浏览器在运行=>{total}', end='\r')
                            os.system(cmd)
                            total += 1

        # 对应用商店进行处理
        for t in titles:
            if 'Microsoft Store' in t:
                print(f'应用商店在运行', end='\r')
                os.system(cmd)


if __name__ == '__main__':
    main()

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:24:55  更:2022-03-08 22:26:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:25:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码