【欢迎白嫖】新·vbs表白代码

新·vbs表白代码

前言

        之前有在B站上发布过一个表白代码的视频,但是貌似Bug多的让人心痛,所以,今天返璞归真,重新做了一个表白代码,欢迎各位批评指正!

分析问题

        对于上一版的代码,我总结出了以下两个问题:
 1.由编码错误引起的输出内容为乱码,或者有类似于"编译器错误","语句未结束",以及"找不到路径"的报错。
 2.由代码问题引起的"找不到文件"的报错。

解决问题

        第一个问题是由文件的编码格式错误引起的,现在大多数语言的编码格式是Unicode家族(多为utf-8),而ANSI和utf-8在中文文字编码上恰好出现了偏差,所以出现了不兼容的现象。相关知识请转至: 《编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE)》 。
所以要注意修改vbs文件的编码格式。
        修改编码的方法很简单,只要用记事本打开文件,点击’文件’->‘另存为’,在下面的编码格式里选择为ANSI即可。
        (如下图)
【欢迎白嫖】新·vbs表白代码_第1张图片
【欢迎白嫖】新·vbs表白代码_第2张图片
        在上一次的代码中,想要运行自身需要在代码内定义好自己的路径。
【欢迎白嫖】新·vbs表白代码_第3张图片
        所以这次我们直接用代码完成获取自身路径的任务,这样大大增加了代码的可移植性。

新的实例

        大体思路是在另一个txt文件内写入想要输出的内容,这样增加了脚本的灵活性,因为你可以自己随心所欲地添加和删减语句了。想要同时输出一个多行的句子只需要在每个需要换行的地方加入一个自定义的换行标记"[\n]"即可,之后会由脚本的Relpace()函数完成转换。话不多说,直接上代码:

'声明变量
Dim txt, mypath, sentences

'第一步,获取当前的文件路径
'解决了手动改名的问题
mypath = CreateObject("WScript.Shell").CurrentDirectory

'创建一个对象来读取目标文本文档的内容
Set txt = CreateObject("Scripting.FileSystemObject").OpenTextFile(mypath + "\base.txt", 1)
sentences = Split(txt.ReadAll(), Chr(10))'回车键的ASCII码值是10,这里是用回车来分割句子。返回值是一个数组
For i = 0 To UBound(sentences) - 1
	sentences(i) = Replace(sentences(i), "[\n]", Chr(10))'把所有句子内的字符串"[\n]"换为换行符,做到第一行是英文,第二行是中文
Next

'剩下的就是一些交互性的操作了
Randomize'初始化随机数种子
Select Case MsgBox(sentences(Int(Rnd * UBound(sentences) - 1 + 1)) + vbCrLf + "小姐姐你愿意做我的女朋友吗?", 4096 + 4, "小姐姐,听我说!")
'用随机数输出数组中的内容
'vbCrLf是内定的关键字,代表一个换行符,与Chr(10)的作用相同[仅Windows系统下]
	Case 6
		CreateObject("WScript.Shell").Run "cmd /c taskkill -f -im cmd.exe", vbHide, True '只要点击同意就可以自动关闭所有的cmd窗口(需要手速)
		CreateObject("WScript.Shell").Popup "嘻嘻,老婆好!", 2, "欧耶!太高兴了!"'Popup()函数可以设置弹窗的生命周期,即弹窗会在停留固定时间后会自动关闭。中间的参数2是指弹出的消息框只能存在2秒,过时自动关闭
		CreateObject("WScript.Shell").Run "cmd /c taskkill -f -im wscript.exe" '关闭wscrip脚本宿主,停止继续打开vbs文件
	Case 7
		Set ws = CreateObject("WScript.Shell")
		ws.Popup "为什么要这样,我好伤心啊T_T", 3, "啊啊啊,你怎么能拒绝我呢QAQ"
		Do '弹窗轰炸
			ws.Run CreateObject("Scripting.FileSystemObject").GetFile(WScript.ScriptFullName).Path
			ws.Run "cmd.exe /c echo 我好伤心啊QWQ!"
		Loop
End Select

        如果了解vbs的话请忽略代码的注释。
下面是代码执行的视频,B站的链接是:BV1RD4y1m7H5
        欢迎给我这个B站的卑微UP三连嗷~

【致郁BGM】新的表白代码,解决了上次表白代码的一些问题

你可能感兴趣的:(批处理,笔记,vbs)