python win32api获取句柄_写了个Python小工具,再也不怕孩子偷偷玩电脑游戏啦!

今天小编就带领大家来做一个防止孩子玩游戏的Python小程序

1

查询电脑的所有进程

用Python循环检测电脑软件的运行情况,当发现游戏软件时弹出警告窗口,并截图保存。学会这项技能,就再也不怕孩子偷偷打游戏了。下面给大家介绍一下详细过程。

第一步:循环查询电脑所有进程,并与游戏进程匹配

1).本文以steam为例,打开任务管理器(Ctrl+Alt+Delete),在详细信息栏我们可以找到steam的进程名字Steam.exe

5c67ecf89a9d6229220c41082eb8b135.png


2).然后用python的第三方模块psutil获取系统信息,只需一行代码就可以调取电脑的所有进程

import psutil
pl = psutil.pids()

1e211edc43fc4679fe5bad3a4f924b0e.png

再与steam.exe做对比,如果匹配到则进入第二步,否则一直循环查询进程

for pid in pl:
    if psutil.Process(pid).name()==ProcessName:
        get_desk()
        Warnning()

2

设计一个弹出对话框

第二步:当匹配上之后,弹出提醒框

这一步实现的方法有很多,本文利用win32api模块弹出窗口,主要是提醒,给孩子一个主动改正错误的机会,哈哈

def Warnning():
    win32api.MessageBox(0, "别打游戏,我看着你呢",
                        "提醒", win32con.MB_ICONWARNING)

效果如下:

dea9a2b7e4b78d4ab27656f091d953be.png

1e211edc43fc4679fe5bad3a4f924b0e.png

这个框是关不掉的,如果关掉,会马上重新弹出来,只有把steam关掉,系统查不到该进程的时候,才会消失,但再打开steam又会重新弹出来。

3

截图保存

第三步:截图保存

教育孩子仅仅提醒是不够的,还要让孩子心服口服,所以这一步要在steam被打开时调用截图功能,并以时间戳命名,每关闭一次上一步弹出的小窗口,就会截1张图保存

91f04596ccf17a65ed886395a23af227.png

当发现游戏进程时,用win32gui调用桌面,并设置好分辨率,创建设备描述表和内存设备描述表,截图至内存设备描述表,最后将截图保存在当前文件夹里。

d2486d4197f4d903165c162f6a4b50ef.png

1e211edc43fc4679fe5bad3a4f924b0e.png

你以为这就万事大吉了吗?当然不是啦,你以为孩子每次玩游戏之前会先帮你运行程序吗?那是不可能的,来看看下面怎么办吧。

4

程序打包成exe文件

第四步:将程序文件打包成exe文件

我的想法是把程序先打包成可执行的exe文件,python有现成的模块pyinstaller,在pycharm里可以直接安装,安装完成后打开Win+R,输入cmd打开命令窗口,直接输入

c77ac79f7c501de0ff14aa6768fc592d.png

打码的是代码文件地址,记住一定要加-w,不加-w运行程序的时候会弹出命令窗口,那就尴尬了。运行成功后,会提示生成exe文件的位置

a45116514dbc5033ed1ff1a343e71866.png

5

设计成自动开机

第五步:将生成的exe文件设置成开机自启动

这步比较简单,WIN+R输入shell:startup

6b19018ba604aa4c02c67f508a0ba649.png

将生成的exe文件复制进去

0e317ceac4c07dbda67b95116a6b7ae2.png

这样一来,每次开电脑的时候这个程序就会偷偷运行,只要一打开steam软件就会弹出警告窗口并截图,但是在其他下是不启用此功能的,让我们一起看看效果吧。

f9696e0d74c4baf36bdb63d9b8254ce3.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值