python实现windows内存看门狗程序(带GUI界面)

python实现windows内存看门狗程序(带GUI界面)

效果图

在这里插入图片描述

1、程序核心

看门狗程序核心:
1、运行特定程序任务进程
2、监控任务管理器上的内存使用率
3、如果超过阈值则关闭该特定程序进程
4、重新开启该特定程序
5、重复过程2持续监控

2、程序流程

1、先编写UI界面,并转成py文件
2、实现具体的功能:获取当前内存,设置内存阈值,设置运行时间、获取目标程序路径、名称、开启监控、监控日志
3、使用nuitka打包成exe文件

3、核心代码

# -*- coding: utf-8 -*-

"""
@contact: 微信 1257309054
@file: watchDogMain.py
@time: 2024/1/6 20:40
@author: LDC
"""
def run(self):
    '''
    监控程序
    '''
    while 1:
        self.qmut.lock()
        if not self.window.is_run:
            break
        self.qmut.unlock()
        time.sleep(5)
        self._signal_monitor.emit(json.dumps({'get_memory': 'get_memory'}))  # 发送信号给槽函数
        time.sleep(5)
        msg = '正在监控【{}】,当前内存:{},内存阈值:{}'.format(self.window.file_name_edit_value,
                                                self.window.current_memory_edit_value,
                                                self.window.memory_threshold_edit_value
                                                )
        self._signal_monitor.emit(json.dumps({'log': msg}))  # 发送信号给槽函数
        try:
            if self.window.current_memory_edit_value > self.window.memory_threshold_edit_value:
                msg = '内存{}%超过{}%,关闭程序'.format(self.window.current_memory_edit_value,
                                               self.window.memory_threshold_edit_value
                                               )
                self._signal_monitor.emit(json.dumps({'log': msg}))  # 发送信号给槽函数

                while self.is_process_running(self.window.file_name_edit_value):
                    os.popen('taskkill /f /im {}'.format(self.window.file_name_edit_value))  # 关闭程序
                    time.sleep(2)

                time.sleep(5)

            while 1:
                if self.is_process_running(self.window.file_name_edit_value):
                    break
                msg = '开始重启【{}】'.format(self.window.file_name_edit_value)
                self._signal_monitor.emit(json.dumps({'log': msg}))  # 发送信号给槽函数
                # 开启进程启动程序
                p_array_main = Process(target=run,
                                       name='monitor_run',
                                       args=(self.window.file_path_edit_value, self.window.file_name_edit_value)
                                       )
                p_array_main.daemon = False  # 设为【非守护进程】daemon=True 随主进程的结束而结束
                p_array_main.start()
                time.sleep(50)
                if self.is_process_running(self.window.file_name_edit_value):
                    msg = '重启【{}】成功'.format(self.window.file_name_edit_value)
                    self._signal_monitor.emit(json.dumps({'log': msg}))  # 发送信号给槽函数
                    break
            time.sleep(120)  # 休眠时间
        except Exception as e:
            self._signal_monitor.emit(json.dumps({'log': '出错了,{}'.format(e)}))  # 发送信号给槽函数

4、打包

python -m nuitka --standalone --windows-disable-console --onefile --mingw64 --show-memory --show-progress --nofollow-import-to=pillow,PIL,,pyqt5  --enable-plugin=pyqt5  --output-dir=nuitka_out watchDogMain.py

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/300681.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 基础知识点1 (含面试题1)

Spring Boot 是一款基于 Spring 框架的开源应用程序开发工具,它旨在简化 Spring 应用程序的配置和开发过程。Spring Boot 提供了一种简单的方式来创建可独立运行的、生产级别的应用程序,并在需要时进行部署。Spring Boot 在微服务架构和云计算环境下得到…

thinkphp6实现简单定时任务

thinkphp6实现定时任务 创建定时任务文件定义指令编写Test.php代码运行测试 创建定时任务文件 Test类名根据自己的需要修改 php think make:command Test testcommand文件夹在app目录下没有需要自己创建 运行上面的命令后会在command下 多一个Test.php文件 定义指令 在conf…

PHP代码审计之实战审代码篇2

4. 仔细观察如下代码&#xff0c;思考代码有什么缺陷&#xff0c;可能由此引发什么样的问题&#xff1f; <?php require_once("/home/rconfig/classes/usersession.class.php"); require_once("/home/rconfig/classes/ADLog.class.php"); require_onc…

金和OA C6 SAP_B1Config.aspx 未授权漏洞

产品介绍 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 漏洞描述 金和OA C6 SAP_B1Config.aspx接口 未授权&#xff0c;攻击者可通过此漏洞获取数据库账户密码等敏…

2024最新前端源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 粒子文字动画特效 基于canvas实现的粒子文字动画特效 会来回切换设定的文字特效 图…

postman使用方法指南,最全面的教程

Postman使用教程 一、Postman介绍 ​ Postman是一个英语单词&#xff0c;名词&#xff0c;作名词时意为“邮递员&#xff1b;邮差”。 ​ Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,…

【两阶段鲁棒】计及需求响应的多能互补微网两阶段鲁棒优化matlab

目录 1 主要内容 算例模型 目标函数 第一阶段 第二阶段 求解流程图 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《多能互补微网两阶段鲁棒优化调度研究》&#xff0c;在考虑风光不确定集的基础上提出采用计及DR响应的多能互补微网两阶段鲁棒备用调度模…

ShardingSphere-JDBC学习笔记

引言 开源产品的小故事 Sharding-JDBC是2015年开源的&#xff0c;早期的定位就是一个分布式数据库的中间件&#xff0c;而在它之前有一个MyCat的产品。MyCat也是从阿里开源出来的&#xff0c;作为分库分表的代名词火了很长一段时间&#xff0c;而MyCat早年的目标就是想进入ap…

Python的基础练习题之学生管理系统

需求 使用Python基础写一个基于控制台的学生管理平台&#xff0c;里面功能分别是&#xff1a;1.录入学生信息2.查找学生信息3.删除学生信息4.修改学生信息5.排序6.统计学生总人数7.显示所有学生信息&#xff0c;要求数据存储在文件里。 代码 代码资源地址可以直接下载 效果图…

消除字母Scratch-第14届蓝桥杯Scratch省赛真题第6题

6. 消除字母&#xff08;100分&#xff09; 编程实现&#xff1a;消除字母。 具体要求&#xff1a; 1). 点击绿旗&#xff0c;角色、背景如图所示&#xff08;创建1个字母表&#xff0c;并存入26个字母&#xff09;&#xff1b; 2). 等待1秒&#xff0c;阿拉蕾说&#xff1…

华为VRP系统基础华为ICT网络赛道

目录 1.华为VRP系统概述 3.2.命令视图与使用 3.3.基本配置命令 1.华为VRP系统概述 通用路由平台VRP(Versatile Routing Platform)是华为公司数据通信产品的通用操作系统平台。它以IP业务为核心&#xff0c;采用组件化的体系结构&#xff0c;在实现丰富功能特性的同时&#x…

AIGC学习笔记(1)——AI大模型提示词工程师

文章目录 AI大模型提示词工程师1 Prompt工程之原理1.1 AIGC的发展和产业前景前言AIGC时代的到来发展趋势和应用展望 1.2 大模型的类型和特点大模型的对比上手特点 1.3 大模型技术原理和发展成语接龙和暴力穷举ChatGPT如何理解人类语言如何存储数据图像存储电脑存数字如何让电脑…

【Docker基础二】Docker安装Mysql8

下载镜像 安装mysql&#xff08;版本&#xff1a;8.0.35&#xff09; # 拉取镜像 docker pull mysql:8.0.35 # 查看镜像是否已经下载 docker images 创建挂载目录 # 宿主机上创建挂载目录 (可以不创建&#xff0c;docker run -v配置了挂载目录&#xff0c;docker会自动…

ARMv8-AArch64 的异常处理模型详解之异常等级、执行状态以及安全状态

ARMv8-AArch64 的异常处理模型详解 一&#xff0c;特权和异常等级1.1 异常等级 Exception levels 二&#xff0c;特权的类型2.1 内存特权2.2 访问寄存器的特权 三&#xff0c;执行状态和安全状态3.1 执行状态 Execution states3.2 执行状态切换 3.3 安全状态 Security states3.…

商品期货交易中的强行平仓:交易所的规定和风险控制

在商品期货交易中&#xff0c;保证金充足的情况下&#xff0c;一般不会被强行平仓。然而&#xff0c;有几种情况可能会导致强行平仓的发生&#xff1a; 1 持仓超过交易所限仓规定&#xff1a;交易所会设定限仓规定&#xff0c;限制每位投资者的持仓数量。如果超过限仓规定&…

CAD安装教程

CAD安装教程 目录 一&#xff0e; 下载CAD二&#xff0e; 安装CAD 一&#xff0e; 下载CAD 如果需要CAD安装包请私信。 二&#xff0e; 安装CAD 解压压缩包AutoCAD2022中文版&#xff0c;以管理员身份运行AutoCAD_2022_Simplified_Chinese_Win_64bit_dlm.sfx。 选择解压路径。…

【强化学习的数学原理-赵世钰】课程笔记(六)随机近似与随机梯度下降

目录 一.内容概述 二.激励性实例&#xff08;Motivating examples&#xff09; 三.Robbins-Monro 算法&#xff08;RM 算法&#xff09;&#xff1a; 1.算法描述 2.说明性实例&#xff08;llustrative examples&#xff09; 3.收敛性分析&#xff08;Convergence analysi…

阿里通义最新黑科技!“通义舞王”:让静态照片翩翩起舞,探索艺术与科技的无限可能

引子&#xff1a;穿越二维与三维的艺术边界 在科技日新月异的时代&#xff0c;艺术创作的疆界正以前所未有的速度拓展,&#xff0c;从AI作曲和音乐生成技术带来的跨风格音乐作品&#xff0c;到基于人工智能的诗歌与文学创作&#xff0c;艺术不再仅仅是人类个体情感与才华的体…

项目管理工具Maven

Maven Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机&#xff0c;Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Maven基础内容 2. Maven的依赖管…

PHP文件代码加密系统,可批量全开源

代码文件加密系统 在程序运行时&#xff0c;实质上是在执行机器码&#xff0c;而虚拟机语言的基本概念是将程序加密到一定程度&#xff0c;也就是说&#xff0c;经过加密的PHP程序在执行时会被解密成opcode继续执行。 PHP在执行时会生成opcode&#xff0c;然后由Zend虚拟机继…