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

2023-12-01 0 662

概述

听说抖音上流行一种用代码做程序表白的东西,,,,
当然我也不是要表白,,,,
但是好像蛮有意思的,,,,
于是,又学了一下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) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 VBS 使用vbs脚本实现自动打字祝福与搞笑实现代码 https://www.u-9.cn/jiaoben/vbscript/9374.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务