效果展示:
代码及解析:
提示:使用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()
成功恢复