【Python实现禁用任务管理器】

news2024/9/20 8:57:08

效果展示:

在这里插入图片描述

代码及解析:

提示:使用pyinstaller打包可以避免弹窗,食用更佳哦
提示(2):运行后要等待一段时间再关机哦

禁用代码:

要禁止任务管理器关闭 Python 程序,可以通过修改注册表来实现。以下是示例代码:

import winreg
import ctypes
import sys

#以管理员身份运行此程序
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)

import winreg

def reg_disable_taskmgr(dwDisable=True):
    try:
        key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Windows\CurrentVersion\Policies\System")
        value = int(dwDisable)
        winreg.SetValueEx(key, "DisableTaskMgr", 1, winreg.REG_DWORD, value.to_bytes(4, byteorder='little'))
        winreg.CloseKey(key)
    except Exception as e:
        print(f"An error occurred: {e}")

reg_disable_taskmgr()

def disable_task_manager():
    # 注册表路径
    registry_path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
    # 注册表项名
    registry_name = "DisableTaskMgr"
    # 要设置的值(1 表示禁用任务管理器,0 表示启用)
    value = 1
    try:
        reg_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, registry_path, 0, winreg.KEY_SET_VALUE)
        winreg.SetValueEx(reg_key, registry_name, 0, winreg.REG_SZ, str(value))
        winreg.CloseKey(reg_key)
    except WindowsError as e:
        print(f"设置注册表时发生错误: {e}")

disable_task_manager()

上述代码中定义了一个 disable_task_manager 函数,它用于修改注册表中的特定键值来禁用任务管理器。其中,registry_path 指定了注册表中要操作的路径,registry_name 是要设置的键名,value 为要设置的值(这里设置为 1,表示禁用任务管理器)。

请注意,修改注册表需要管理员权限。此外,这种方法只能在一定程度上禁止普通用户通过任务管理器关闭程序,但对于具有管理员权限或了解系统的高级用户,他们仍然可能有其他方法来终止程序的执行。

另外,这种禁止任务管理器关闭程序的做法可能会影响用户对系统的正常操作和管理,在实际应用中请谨慎使用,并确保你有充分的理由这样做,同时也要遵循相关的法律和规定。并且,此方法可能因操作系统版本和配置的不同而有所差异。

如果想要重新启用任务管理器,可以将 value 的值修改为 0,然后再次运行代码。或者使用以下代码来删除对应的注册表项:

恢复代码:

import winreg
import ctypes
import sys

#以管理员身份运行此程序
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)

def enable_task_manager():
    registry_path = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
    registry_name = "DisableTaskMgr"
    try:
        reg_key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, registry_path, 0, winreg.KEY_ALL_ACCESS)
        winreg.DeleteValue(reg_key, registry_name)
        winreg.CloseKey(reg_key)
    except WindowsError as e:
        print(f"删除注册表项时发生错误: {e}")

enable_task_manager()

成功恢复
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OpenCV_python】凸包检测 轮廓特征 直方图均衡化 模板匹配 霍夫变换

凸包特征检测 凸包就是图像的最小外接多边形,通过图像的轮廓点,找到距离最远的两个点的直线,根据直线找到距离最远的下一个点,直到所有的点被包围在多边形内 读取图像二值化找图像的轮廓获取凸包点的坐标绘制凸包点 convexHull 获…

bilibiliDown-纯净B站视频解析提取工具

软件简介 bilibiliDown是一款简洁好用的B站视频下载工具,支持由UP主上传的单集,多集以及相关封面,弹幕,字幕,音乐,刮削等等,支持任意粒度批量组合,登录后支持到1080P,大…

Git Merge 实例教学:同步代码库与处理分支冲突的最佳实践

文章目录 前言一、git merge是什么?二、git merge基本用法1. 合并两个分支2. 合并时创建合并提交3. 快进合并(Fast-forward Merge)4. --abort参数5. --continue参数6. -X theirs参数 三、实际例子1. 更新仓库2. 将origin/main分支合并到当前分…

podman安装过程记录

最近注意到podman兼容docker镜像包,于是好奇心的驱动下,研究了一下 本来以为podman的desktop跟docker一样,最后发现podman桌面版是轻量级的,还需要安装podman的服务(当然,是支持直接通过它的桌面版来安装其…

Linux系统中用户、用户组及文件权限的常用知识汇总

Linux为多用户多任务的操作系统,文件权限管理十分重要,每一个文件都有很多属性,合理的权限设置,可以确保数据不被未授权的人员访问,同时也能提高系统安全性。 本文将介绍Linux系统中用户、用户组及文件权限的常用知识…

【C++二分查找 前缀和 】1292. 元素和小于等于阈值的正方形的最大边长

本文涉及的基础知识点 C二分查找 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode1292. 元素和小于等于阈值的正方形的最大边长 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold。 请你返回元素总和小于或等于阈值的正…

C++ 设计模式——策略模式

策略模式 策略模式主要组成部分例一:逐步重构并引入策略模式第一步:初始实现第二步:提取共性并实现策略接口第三步:实现具体策略类第四步:实现上下文类策略模式 UML 图策略模式的 UML 图解析 例二:逐步重构…

主成分分析SPSS步骤+Matlab程序

SPSS 导入数据 主成分分析 参数设置 选择要压缩的变量 输出结果 越陡说明信息差越大,反之信息差越小 导出数据 双击可以复制 粘贴到matlab 计算 Matlab clc,clear data readmatrix(例2.xlsx); %将数据保存在txt文件中 data zscore(data); %数据的标准化 …

使用java加载、调用onnx模型(二)

目录 1、摘要 2、实现过程 2.1、依赖 2.2、imread 2.3、contiguous函数 2.3.1、转化示例 2.3.3、核心代码 2.4、Flatten拉直 2.5、最终结果 3、完整代码 1、摘要 在上一篇文章中 使用java加载、调用onnx模型_onnx java-CSDN博客 发现使用Java加载调用模型的分类结…

计算组合数:从n个不同元素中,选k个元素的方式数量math.comb()

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 计算组合数: 从n个不同元素中, 选k个元素的方式数量 math.comb() 请问关于以下代码表述正确的选项是? import math print("【执行】math.comb(3, 2)…

线性代数证明:把行列式的某一行(列)的k倍加到另一行(列),行列式的值不变

线性代数证明 把行列式的某一行(列)的k倍加到另一行(列),行列式的值不变: 注意五角星的位置要用到另一条性质:若行列式的某一行(列)的元素都是两数之和,则可以…

Ajax笔记总结(Xmind格式):第一天

Xmind鸟瞰图: 简单文字总结: ajax知识总结: 网络的参考模型: 1.物理层:源设备到目的设备 底层传输就是比特流 2.数据链路层 进行电信号的处理 进行数据的分组 3.网路层 进行数据包的传递 进行不同网络的…

菱形继承和虚继承

菱形继承(Diamond Inheritance)是指在多重继承的情况下,某个类继承自两个类,而这两个类又都继承自同一个基类的情况。 在这个结构中,D 直接从 A 继承了 A 的所有特性,但通过 B 和 C 继承,这会导…

Avue实现动态查询与数据展示(附Demo)

目录 前言1. 基本知识2. Demo 前言 此框架为Avue-crud,推荐阅读: 【vue】avue-crud表单属性配置(表格以及列)Avue实现批量删除等功能(附Demo)Avue实现选择下拉框的多种方式Avue框架实现图表的基本知识 | …

凌晨突发!核心系统瘫痪,通过Signleton单例模式轻松搞定,但还是被裁员了...

🍅 作者简介:哪吒,CSDN2021博客之星亚军🏆、新星计划导师✌、博客专家💪 🍅 哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师 🍅 技术交流:定期更新…

selenium底层原理详解

目录 1、selenium版本的演变 1.1、Selenium 1.x(Selenium RC时代) 1.2、Selenium 2.x(WebDriver整合时代) 1.3、Selenium 3.x 2、selenium原理说明 3、源码说明 3.1、启动webdriver服务建立连接 3.2、发送操作 1、seleni…

flink车联网项目:维表离线同步(第69天)

系列文章目录 3.3 维表离线同步 3.3.1 思路 3.3.2 示例 3.3.3 其他表开发 3.3.4 部署 3.3.1.1 将表提交到生成环境 3.3.1.2 添加虚拟节点 3.3.1.3 配置计算节点 3.3.1.4 添加虚拟结束节点 3.3.1.5 提交到生产环境 3.3.1.6 发布 3.3.1.7 运维中心 3.3.1.8 补数据 3.3.1.9 补数据…

c++进阶------多态

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

机器学习/数据分析--通俗语言带你入门线性回归(结合案例)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 机器学习是深度学习和数据分析的基础,接下来将更新常见的机器学习算法注意:在打数学建模比赛中,机器学习用的也很多&a…

探索GitLab:从搭建到高效使用的实用指南

企业里为什么喜欢使用GitLab 一、GitLab简介二、搭建GitLab三、GitLab的权限管理3.1、用户注册3.2、创建用户组3.3、为用户组添加用户3.4、为工程添加访问权限 四、GitLab的code review五、团队知识管理六、总结 一、GitLab简介 GitLab是利用 Ruby on Rails 一个开源的版本管理…