使用vbs脚本实现自动打字祝福与搞笑实现代码

概述

听说抖音上流行一种用代码做程序表白的东西,,,,
当然我也不是要表白,,,,
但是好像蛮有意思的,,,,
于是,又学了一下vbs脚本,做了几个很不错的祝福脚本,不懂代码的可以直接戳传送门下载,但是想自己改内容的话,下面有讲

效果示范

<iframe height=498 width=510 src='http://player.youku.com/embed/XMzk4Nzk4NDE5Ng==' frameborder=0 'allowfullscreen'>

貌似不能看,只能点进去看,好吧,,,

思路

目前这个脚本分成了4个板块的功能,想自己改的可以通过下面的讲解自己改内容,或者启动我原来没有启动的功能
首先,把程序下载以后,拖到桌面上,右键用记事本打开,对!用记事本打开,vbs脚本不需要花里胡哨的编辑器云云,直接暴力记事本打开,查看源码

1)开篇交互对话框

Dim a,cut,b,Str,flag
flag=false
cut=1
a=Inputbox("你相信这世界上存在圣诞老人吗?",,"相信")
MsgBox "..."
MsgBox "其实我就是圣诞老人"
MsgBox "虽然我没有礼物给你"
MsgBox "呜呜,你是不是生气啦"
MsgBox "那我给你变个魔术好不好"
a=Inputbox("要不要变魔术?",,"要")
If a<>"要" Then
  MsgBox "呜呜,真的不给机会吗?"
  Do
  b=InputBox(Str+"试一下吧",,"不")
  Str=Str&"请"
  If b<>"不"Then
    flag=true
    Exit Do
  Else cut=cut+1
  End If
  If cut=5 Then
    MsgBox "那好吧,再见!"
    Exit Do
  End If
  Loop
Else flag=true
End If

Dim关键字用来声明变量,当然在vbs里变量不声明也可以用,但是退出那个块以后变量就释放掉了,所有最好还是前面声明一下,之后的程序应该比较好看懂,有输入对话框,显示对话框,提示输入,inputbox的输入对话框第2个参数省略了,第3个参数是默认的输入框里的内容,这里面的素有双引号内的东西都可以自己改,在选择是否变魔术那里,选5次否,脚本退出

2)打开记事本,念打油诗

If flag=true Then
Set WS=WScript.CreateObject("WScript.Shell")
WS.run("notepad"),3
WScript.Sleep 500
WS.AppActivate("notepad")
WS.SendKeys "+"
arr=Array("听","说","你","被","拐","卖","真","的","把","我","吓","坏","你","虽","从","小","痴","呆","却","对","社","会","无","害","谁","人","如","此","大","胆","竟","敢","拿","你","去","卖","我","真","替","他","担","心","卖","得","掉","才","怪","")
f(arr)
WScript.Sleep 3000
For i=0 To 90
  WScript.Sleep 30
  WS.SendKeys "{BS}"
Next
arr=Array("好","啦","好","啦","不","逗","你","了","")
Clipboard="MsHta vbscript:ClipBoardData.setData(""Text"","""&str1&""")(Window.Close)"
WS.Run(Clipboard)
  For i=0 To 8
    WScript.Sleep 200
    Clipboard="MsHta vbscript:ClipBoardData.setData(""Text"","""&arr(i)&""")(Window.Close)"
    WS.Run(Clipboard)
    WS.SendKeys"^v"
  Next
WScript.Sleep 3000
For i=0 To 90
  WScript.Sleep 30
  WS.SendKeys "{BS}"
Next 

以及f函数的实现

Function f(a)
  Dim str1
  Clipboard="MsHta vbscript:ClipBoardData.setData(""Text"","""&str1&""")(Window.Close)"
  WS.Run(Clipboard)
  For i=0 To 47
    WScript.Sleep 200
    Clipboard="MsHta vbscript:ClipBoardData.setData(""Text"","""&a(i)&""")(Window.Close)"
    WS.Run(Clipboard)
    WS.SendKeys"^v"
    If i>0 Then
    If(i Mod 6=0) Then
      WScript.Sleep 400
      WS.SendKeys "{ENTER}"
    End If
    End IF
  Next
End Function

下载了vbs脚本以后就会发现,这一部分其实并没与启动,因为虽然这部分代码有,但是关键部分都被我注释掉了,如你所见'在vbs脚本中就是注释(大号字体标注),也就是英文的单引号,如果想启动,就把这一部分的注释全部去掉,这部分的原理就是把汉字数组的每个字依次传到剪贴板,然后偶模拟键盘Ctrl+V,由于频繁操作剪贴板,这部分执行可能会导致缺字打印(电脑缓不过来),之后进行模拟键盘的删除操作,把写好的打油诗删除,准备下面的英语正文。

3)接着上面的记事本,写英文

这是整个脚本的重点,写出像视频中的效果那样,一个字母一个字母敲的效果,先上一段代码:

AutoTime=75
say(AutoTime)

Function say(AutoTime)
End Function

什么?就这么点吗?当然不是!!!这部分的代码有上千上,内容就在function中间,当然你也看出这是个函数了,那我们的内容也是模拟键盘输入,所以,你觉得怎么搞这部分呢?
用数组存字符串,然后模拟键盘输出吗?
试过很多次了,都失败了,貌似只能一个一个敲
然后,写一个字母的代码量,,,,大概是40个字母
当然,不可能真的一个字一个字敲啊,为什么不写一个程序出来,专门写vb的模拟键盘输入代码呢?

C++实现英文转vbs模拟键盘输入代码

#include<iostream>
#include<fstream>
using namespace std;
int main() {
  ifstream ifile;
  ifile.open("D:\\in.txt");
  ofstream ofile;
  ofile.open("D:\\out.txt");
  char str[100];
  while (ifile.getline(str, 100)) {
    if (str[0] == '\0') {
      ofile << "WS.SendKeys \"{ENTER}\"" << endl << endl<<endl;
    }
    else {
      for (int i(0); i < strlen(str); i++) {
        ofile << "WScript.Sleep AutoTime" << endl;
        ofile << "WS.SendKeys \"" << str[i] << "\"" << endl;
      }
      ofile << "WScript.Sleep 1000" << endl;
      ofile << "WS.SendKeys \"{ENTER}\"" << endl << endl << endl;
    }
  }
  ofile.close();
  ifile.close();
  return 0;
}

两个文件,in.txt,你要显示的英文,可以空行,可以逗号问好,但是,必须用英文输入法

对,就像这样,对吧,很容易,然后就会生成一个1k多行的out.txt
把里面内容全选复制,然后放在function say 的中间,这一步就完成了
AutoTime是每个字的间隔,可以自己定义,75效果就蛮好的

4)祝福网页

又是一个在脚本里没出现的功能,

Function link()
Set Seven = WScript.CreateObject("WScript.Shell")
strDesktop = Seven.SpecialFolders("Desktop")
set oShellLink = Seven.CreateShortcut(strDesktop & "\Titordong.url")
oShellLink.TargetPath = "https://www.cnblogs.com/Titordong/"
oShellLink.Save
Set oShellLink=Nothing
strDesktop = Seven.SpecialFolders(4)
mypath=strDesktop&"\Titordong.url"
Seven.run mypath
End Function

如果你有博客,或者你有自己写的网页,甚至你自己的qq空间也行,把链接复制,然后oShellLink.TargetPath = "https://www.cnblogs.com/Titordong/"里面的后面引号里替换,就ok
效果就是可以再桌面建立一个快捷方式链接,然后自动打开你指向的这个链接,当然这个在程序里要调用的话,要在say(AutoTime)后面加一行link()

后记

vbs脚本功能很强(好像之前说过),切记每行只能有一个语句哦!而且,用英文输入法写,包括代码,也包括英文的祝福&搞笑,至于为什么不用中文,,,键盘上也没有中文按键啊~

(0)

相关推荐

  • 使用vbs脚本实现自动打字祝福与搞笑实现代码

    概述 听说抖音上流行一种用代码做程序表白的东西,,,, 当然我也不是要表白,,,, 但是好像蛮有意思的,,,, 于是,又学了一下vbs脚本,做了几个很不错的祝福脚本,不懂代码的可以直接戳传送门下载,但是想自己改内容的话,下面有讲 效果示范 <iframe height=498 width=510 src='http://player.youku.com/embed/XMzk4Nzk4NDE5Ng==' frameborder=0 'allowfullscreen'> 貌似不能看,只能点进去看,

  • 利用计划任务和VBS脚本实现自动WEB共享文件夹里的文件

    复制代码 代码如下: Option Explicit On Error Resume Next '生成列表的文件类型 Const sListFileType = "wmv,rm,wma" '文件所在的相对路径 Const sShowPath="." '排序类型的常量定义 Const iOrderFieldFileName = 0 Const iOrderFieldFileExt = 1 Const iOrderFieldFileSize = 2 Const iOrd

  • 利用批处理文件和 vbs 脚本实现网站视频自动录制

    利用批处理文件和 vbs 脚本实现网站视频自动录制 现在电视台基本上都有了自己的门户网站,我们可以充分利用网络的优势来扩大本地电视台的影响.事实上,将本地电视台的每日的王牌节目挂在网站上的做法已经成为建立电视台网站的必要组成步骤之一了.但随之而来的问题是:每天定时需要的手工录制过程,将给管理者带来极大的不便.在 windows 定时任务的基础上,将批处理程序与脚本程序有机的集合,就可以有效地解决这一问题. 1 :建立压码任务 我们将使用一台带有视频采集卡的电脑来完成压码过程.虽然压码不是本文的重

  • Vbs脚本经典教材(最全的资料还是MSDN)

      -为什么要使用Vbs? 在Windows中,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些计算机文件进行复制.粘贴.改名.删除,也许你每天启动计算机第一件事情就是打开WORD,切换到你喜爱的输入法进行文本编辑,同时还要播放优美的音乐给工作创造一个舒心的环境,当然也有可能你经常需要对文本中的某些数据进行整理,把各式各样的数据按照某种规则排列起来--.这些事情重复.琐碎,使人容易疲劳. 第三方软件也许可以强化计算机的某些功能,但是解决这些重复劳动往往事倍功半,

  • VBS脚本病毒原理分析与防范

    网络的流行,让我们的世界变得更加美好,但它也有让人不愉快的时候.当您收到一封主题为"I Love You"的邮件,用兴奋得几乎快发抖的鼠标去点击附件的时候:当您浏览一个信任的网站之后,发现打开每个文件夹的速度非常慢的时候,您是否察觉病毒已经闯进了您的世界呢?2000年5月4日欧美爆发的"爱虫"网络蠕虫病毒.由于通过电子邮件系统传播,爱虫病毒在短短几天内狂袭全球数百万计的电脑.微软.Intel等在内的众多大型企业网络系统瘫痪,全球经济损失达几十亿美元.而去年爆发的新欢

  • 对一个vbs脚本病毒的病毒原理分析

    一.前言 病毒课老师丢给我们一份加密过的vbs脚本病毒的代码去尝试分析,这里把分析过程发出来,供大家参考,如果发现文中有什么错误或者是有啥建议,可以直接留言给我,谢谢! 二.目录 整个分析过程可以分为以下几个部分: 0x00 准备工作 0x01 解密部分 0x02 功能分析 三.分析过程 0x00 准备工作 windows xp的虚拟机(在自己的windows下也可以做) vbs的一些基本语法 0x01 解密部分 右击病毒文件然后编辑打开或者是直接把其后缀修改成txt直接打开都行,可以看到一大段

  • 自定义vbs脚本实现开机后延时启动指定程序的方法

    概述 系统开机时,顺带自动启动了不少驱动程序,使得电脑开机后鼠标要呆滞许久.为了加快windows的开机速度,在参考网上不少大牛的资料后,整理出使用vbs脚本实现开机后延时启动程序的方法 vbs内容示例: 复制代码 代码如下: Dim delayer Set delayer = CreateObject("WScript.Shell") WScript.sleep 8000 delayer.Run """C:\Program Files(x86)\King

  • vbs脚本病毒生成器 下载

    Vbs脚本病毒生成器 V1.0 版  简 介: 国产的新编的vbs脚本病毒生成器1.0版, 本程序通过采集用户的各项输入.选择,产生符合需要的vbs脚本病毒,属于傻瓜式的vbs病毒制造程序.从此以后,要制造vbs脚本病毒不用再学编程了!(当然还是懂点编程为妙:-)). 需要注意的是,请您不要运行产生的vbs病毒!另外,产生病毒的同时,本程序也产生一个恢复文件,叫做"reset.vbs",万一您不慎运行了病毒,可以运行它解毒!怎麽样?想得够周到吧! 我们可以利用它的功能,来学习vbs的各

  • VBS脚本的GUI界面 HTA简明教程(网络搜集整理)

    作者:薛靖澜 原来网页中的工具栏.地址栏以及菜单栏在这个窗口里都没有被显示出来,还可以使用html中的绝大多数标签.脚本等,这就给予你对界面设计更多的控制权.(天哪,当我看到这句话的时候,心情是多么的激动,这不是专为vbs脚本设计的gui界面吗?) 与普通HTML网页相比,它多了HTA:APPLICATION标签,其实就是这个标签提供了一系列面向应用程序的功能,这个特殊的标签,允许你控制这个应用程序的用户界面(UI).<HTA:APPLICATION>标签位于<HEAD>标签里,它

  • 可以将Bat转换位VBS文件的VBS脚本

    下面代码稍有修改,原结构是脚本与释放的bat同步执行并等待bat执行完毕后删除bat,本意是不遗留临时文件.后来想想通用性不好,比如释放执行的bat文件是个常驻进程的监视类型那VBS也会无休止的等待而无法退出,所以还是改为异步执行,脚本调用bat后自行退出.考虑到还原原文件的完整性末尾添加自删除也打消了想法.压缩包暂未更新. 复制代码 代码如下: 'bat2vbs.vbs by baomaboy Dim WshSHell,FSO On Error Resume Next Set WshSHell

随机推荐