备案号:蜀ICP备2026035470号-1 | 网址:www.bestfenetres.net

用记事本编写恶搞程序|零门槛·零依赖·纯代码整人指南

无需安装IDE,不依赖第三方工具——仅靠Windows自带记事本,即可编写弹窗轰炸、蓝屏模拟、自动打字、键盘锁死等经典恶搞脚本。本页面系统梳理Batch/VBS/HTA三类脚本开发全流程,覆盖从语法原理到防误伤策略的完整知识链,适合零基础入门与进阶实战。

⚡ 基础入门:记事本编程的底层逻辑与环境配置

许多初学者误以为“记事本编程”是低级操作——实则不然。Windows系统内置的脚本宿主(Windows Script Host,简称WSH)为记事本脚本提供了完整执行环境。当您保存为.bat.vbs.hta后缀时,系统即调用对应解析器:cmd.exe处理批处理脚本,wscript.exe执行VBS脚本,而HTA则通过IE内核渲染为独立应用程序。

〔一〕三类脚本技术栈对比

  • Batch(.bat/.cmd):原生命令行脚本,语法简洁但功能受限;擅长文件操作、注册表修改、系统服务控制
  • VBS(.vbs):基于Visual Basic的轻量级脚本,支持对象模型调用;可实现弹窗、键盘鼠标模拟、网络请求
  • HTA(.hta):HTML Application,将网页嵌入独立窗口;支持CSS/JS混合编程,适合构建交互式恶搞界面

〔二〕开发环境准备清单

  1. 确认系统已启用WSH:打开注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings,检查Enabled键值为1
  2. 禁用脚本执行限制(仅限测试环境):以管理员身份运行PowerShell,执行Set-ExecutionPolicy RemoteSigned
  3. 安装调试辅助工具:Script Debugger(微软官方)或Notepad++(语法高亮支持)

⚠️ 重要安全提示

所有脚本均需用户主动执行(双击/命令行调用),不会自动传播。但若通过U盘自动运行(autorun.inf)或伪装成系统文件分发,则构成安全隐患。请务必在测试虚拟机中验证脚本行为,避免误伤真实系统。

〔三〕基础语法速查表(Batch核心命令)

命令功能说明典型用例
@echo off关闭命令回显提升脚本执行流畅度
title 弹窗设置窗口标题title 您的电脑已感染
echo 文本输出文本/变量echo %username% 正在输入...
goto 标签跳转执行位置goto :loop 实现循环
start 程序启动新进程start notepad.exe
timeout /t 秒数延迟执行timeout /t 3 /nobreak

〔四〕VBS核心对象模型速览

  • WScript.Shell:执行系统命令、读写注册表、创建快捷方式
  • WScript.Network:获取计算机名、用户名、域名信息
  • Scripting.FileSystemObject:文件系统操作(创建/复制/删除文件)
  • InternetExplorer.Application:控制IE浏览器行为(需谨慎使用)

⚙️ 脚本实战:从弹窗到自动化整人程序

Batch脚本
VBS脚本
HTA应用

〔一〕经典弹窗轰炸脚本(无限循环版)

@echo off
title 💥 弹窗风暴
color 0e
:loop
echo 正在启动系统诊断...
echo.
msg * 您的电脑已被感染!
msg * 立即备份重要数据!
msg * 正在清除系统文件...
msg * 倒计时:3秒后关机
msg * 您已无权限操作
set /a n+=1
if %n%==100 goto end
goto loop
:end
msg * 整蛊结束!(已循环100次)
pause

本脚本通过msg命令向当前用户会话发送弹窗,使用goto实现循环。注意:msg命令在部分Win10/11精简版中可能被禁用,可改用mshta vbscript:msgbox("文本")绕过限制。

〔二〕注册表修改器(伪装系统优化)

@echo off
echo 正在执行系统优化...
reg add "HKCU\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 1 /f
reg add "HKCU\Control Panel\Desktop" /v ScreenSaverIsSecure /t REG_SZ /d 1 /f
reg add "HKCU\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f
echo 已启用屏保安全策略(10分钟自动锁定)
echo 请按任意键恢复原设置...
pause >nul
reg add "HKCU\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 0 /f
echo 屏保策略已解除

该脚本修改注册表项ScreenSaveTimeOut为600秒(10分钟),触发屏保自动激活。若搭配shutdown /s /t 0可实现“屏保启动后强制关机”的整蛊效果。

⚠️ 误操作风险

注册表修改需谨慎!建议在脚本开头添加reg export "HKCU\Control Panel\Desktop" "%temp%\backup.reg" /y自动备份,便于一键还原。

〔一〕键盘锁死脚本(模拟按键风暴)

Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WshShell.SendKeys "{CAPSLOCK}"
    WshShell.SendKeys "{NUMLOCK}"
    WshShell.SendKeys "{SCROLLLOCK}"
    WScript.Sleep 200
Loop

此脚本通过SendKeys模拟按下CapsLockNumLockScrollLock三个指示灯键,导致键盘指示灯疯狂闪烁,同时因系统忙于处理按键事件而响应迟滞,形成“键盘锁死”假象。

〔二〕自动打字整人脚本(伪装系统错误)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 1000
For i = 1 To 100
    WshShell.SendKeys "错误代码 0x8000FFFF:系统组件损坏!"
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 300
Next

脚本启动记事本后模拟输入预设错误信息,配合WScript.Sleep控制输入速度。若将SendKeys内容替换为^s(Ctrl+S)+%{F4}(Alt+F4),可实现“自动保存并关闭窗口”的连贯整蛊。

〔一〕全屏弹窗应用(.hta格式)

<html>
<head>
<title>系统安全警告</title>
<hta:application id="oApp"
    border="none"
    windowState="maximize"
    showInTaskbar="no"
    singleInstance="yes"/>
<style>
body{background:red;color:white;font-family:Arial;font-size:24pt;text-align:center}
.button{background:white;color:red;border:2px solid black;padding:10px 30px;font-size:20pt}
</style>
</head>
<body>
<h1>⚠️ 系统检测到严重威胁!</h1>
<p>病毒ID:TROJAN.WIN32.GAGA</p>
<p>建议立即执行以下操作:</p>
<input type="button" class="button" value="立即修复(需管理员权限)" onclick="window.close()">
<script>
setInterval(function(){document.body.style.backgroundColor = Math.random() > 0.5 ? 'red' : 'blue'}, 500);
</script>
</body>
</html>

HTA应用通过hta:application标签实现无边框全屏窗口,配合JavaScript动态改变背景色增强视觉冲击。点击按钮触发window.close()关闭窗口,形成“修复即退出”的整蛊闭环。

〔二〕鼠标干扰器(限制操作区域)

<script>
var x = 0, y = 0;
document.onmousemove = function(e) {
    x = e.clientX; y = e.clientY;
    if (x > screen.width * 0.8 || y > screen.height * 0.8) {
        window.moveTo(0, 0);
        window.resizeTo(screen.width, screen.height);
    }
};
</script>

此脚本监听鼠标移动事件,当指针进入屏幕右下角区域(占屏80%)时强制窗口置顶并拉伸至全屏,干扰用户正常操作。HTA的独立窗口特性使其不受浏览器同源策略限制,可实现更激进的交互控制。

〔案例库〕网友实测TOP5恶搞程序(附完整代码)

① 伪装系统更新脚本(Batch)

@echo off
title Windows Update
echo 正在检查更新...
timeout /t 3 >nul
echo 下载更新包...
timeout /t 5 >nul
echo 安装更新...
timeout /t 10 >nul
shutdown /s /t 60
msg * 更新失败!正在回滚...
timeout /t 2 >nul
shutdown /a

该脚本模拟Windows Update过程,通过timeout制造“等待”假象,最后执行shutdown /s /t 60倒计时关机,并立即用shutdown /a中止——造成“刚关机又复活”的戏剧性效果。

② 蓝屏模拟器(VBS+Registry)

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Control Panel\Desktop\WaitToKillServiceTimeout", "5000", "REG_SZ"
WshShell.Run "cmd /c reg add HKLM\SYSTEM\CurrentControlSet\Control\CrashControl /v AutoReboot /t REG_DWORD /d 0 /f", 0, True
msgbox "CRITICAL_PROCESS_DIED", 16, "SYSTEM ERROR"
WshShell.Run "cmd /c reg add HKLM\SYSTEM\CurrentControlSet\Control\CrashControl /v AutoReboot /t REG_DWORD /d 1 /f", 0, True
WshShell.RegDelete "HKCU\Control Panel\Desktop\WaitToKillServiceTimeout"

通过修改注册表项AutoReboot禁用蓝屏自动重启,配合msgbox模拟蓝屏错误代码,制造“假死”效果。实际系统状态完全正常,仅视觉层面呈现蓝屏。

③ 自动发送邮件脚本(VBS+Outlook)

Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
objMail.To = "victim@example.com"
objMail.Subject = "紧急:系统安全警告"
objMail.Body = "您的电脑已被感染,请立即执行以下操作:..." & vbCrLf & vbCrLf & "附:系统日志文件"
objMail.Send
msgbox "邮件已发送至管理员邮箱", 64, "通知"

此脚本利用Outlook对象模型发送邮件,若目标邮箱配置了自动转发规则,可实现“整蛊邮件”级联传播。注意:需用户授权Outlook访问权限,部分企业环境会拦截此类脚本。

④ 任务管理器封杀脚本(Batch)

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableTaskMgr /t REG_DWORD /d 1 /f
msg * 任务管理器已被系统管理员禁用!
pause
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableTaskMgr /f

通过注册表键DisableTaskMgr禁用任务管理器(Win+Ctrl+Esc同样无效),配合弹窗警告制造“系统失控”假象。退出脚本后自动还原设置,无残留风险。

⑤ 音频轰炸脚本(VBS+Sound)

Set WshShell = WScript.CreateObject("WScript.Shell")
Do
    WshShell.Run "cmd /c start """" /max ""C:\Windows\Media\Chord.wav""", 0
    WScript.Sleep 2000
Loop

脚本循环播放系统提示音Chord.wav,通过cmd /c start指定最大化窗口隐藏控制台。若替换为Beep(800,500)(VBS内置蜂鸣)可避免依赖外部音频文件。

〔排查指南〕常见问题与解决方案

Q1:脚本运行后无反应?

Q2:弹窗被安全软件拦截?

Q3:如何防止误伤自己?

  1. 添加用户确认环节:set /p confirm=确定执行?[Y/N]
  2. 限制循环次数:if %n% gtr 10 exit
  3. 嵌入时间锁:if hour(time) > 22 exit(22点后自动退出)

Q4:脚本导致系统卡顿?

这是正常现象!高频率循环(如SendKeysmsg)会占用CPU资源。解决方案:WScript.Sleep 1000(每秒执行一次)可显著降低负载。

Q5:如何清除脚本残留?

〔时间轴〕记事本编程发展脉络

1993年

Windows NT 3.1发布,引入批处理脚本(.bat),首次支持iffor等条件循环结构

1996年

Windows 95 OSR2内置Windows Script Host 1.0,VBS脚本成为系统管理新宠

2000年

HTA(HTML Application)技术出现,允许将网页嵌入独立窗口,催生“网页整人脚本”热潮

2005年

网友“ScriptKid”发布《记事本编程100例》,将Batch脚本整蛊技术推向大众视野

2012年

Win8系统禁用部分msg命令,催生mshta vbscript:msgbox等替代方案

2020年

GitHub出现“NotepadPrank”开源项目,整合Batch/VBS/HTA模板库,支持一键生成恶搞脚本

搞怪表情包小铺
蜀ICP备2026035470号-1