跳至主要內容

Windows-vbs脚本编程

知识库编程技巧WindowsWindows大约 5 分钟

百度百科 VBSopen in new window
百度百科 msgboxopen in new window

示例代码

' ------ 循环操作示例 ------
Dim j
Do while j < 1
    Select Case MsgBox("做我女朋友好吗",68,"请郑重的回答我")
        Case 6 j = 1
        Case 7 MsgBox("再给你一次机会")
    End Select
Loop
MsgBox("我就知道你会同意的,哈哈哈哈")

' ------ 循环操作示例 ------
Dim j
Do
 Select Case InputBox("姑娘,做我女朋友吧")
  Case "同意":
   MsgBox "单击了“取消”按钮。"
   Exit Do
  Case "好":
   MsgBox "单击了“终止”按钮。"
   Exit Do
 End Select
Loop

' ------ 循环if示例 ------
Const yourname = "姑娘"
' 定义变量
Dim youranswer
Do
    youranswer = InputBox("你最喜欢的人是谁?请在下面的方框中输入他(她)的名字。", "爱情测试")
    If youranswer <> yourname Then MsgBox "你在说谎!不要逃避,实话实说。", vbInformation + vbOKOnly, "爱情测试"
Loop untilyouranswer = yourname
'声明变量
Dim txt, sentences

' 读取文件 当前目录下的文件(base.txt)
Set txt = CreateObject("Scripting.FileSystemObject").OpenTextFile(CreateObject("WScript.Shell").CurrentDirectory + "\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

' 下面是一些交互性的操作
' 用随机数输出数组中的内容 vbCrLf是内定的关键字,代表一个换行符,与Chr(10)的作用相同[仅Windows系统下]
Select Case MsgBox(sentences(Int(Rnd * UBound(sentences) - 1 + 1)) + vbCrLf + "小姐姐你愿意做我的女朋友吗?", 4, "小姐姐,听我说!")
    Case 6
  ' 只要点击同意就可以自动关闭所有的cmd窗口(需要手速)
  CreateObject("WScript.Shell").Run "cmd /c taskkill -f -im cmd.exe", vbHide, True
  ' Popup()函数可以设置弹窗的生命周期,即弹窗会在停留固定时间后会自动关闭。中间的参数2是指弹出的消息框只能存在2秒,过时自动关闭
  CreateObject("WScript.Shell").Popup "嘻嘻,老婆好!", 2, "欧耶!太高兴了!"
  ' 关闭wscrip脚本宿主,停止继续打开vbs文件
  CreateObject("WScript.Shell").Run "cmd /c taskkill -f -im wscript.exe"
    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

MsgBox 弹框

MsgBox(Prompt[,Buttons][,title][,Helpfile,Context])

' 图标样式
MsgBox "十年相遇",vbOKOnly + vbInformation, "我是标题栏"
MsgBox "我愿以万年的等待,换你今朝一世情缘", 3 + 48, "我是标题栏"

Select Case MsgBox ("我愿以万年的等待,换你今朝一世情缘",3)
 Case 1:
  MsgBox "单击了“确定”按钮。"
 Case 2:
  MsgBox "单击了“取消”按钮。"
 Case 3:
  MsgBox "单击了“终止”按钮。"
 Case 4:
  MsgBox "单击了“重试”按钮。"
 Case 5:
  MsgBox "单击了“忽略”按钮。"
 Case 6:
  MsgBox "单击了“”按钮。"
 Case 7:
  MsgBox "单击了“”按钮。"
End Select

VbOKOnly

0

只显示‘确定’按钮

VbOKCancel

1

显示‘确定’及‘取消’按钮

VbAbortRetryIgnore

2

显示‘终止’、‘重试’及‘忽略’按钮

VbYesNoCancel

3

显示‘是’、‘否’及‘取消’按钮

VbYesNo

4

显示‘是’、‘否’按钮

VbRetryCancel

5

显示‘重试’及‘取消’按钮

VbCritical

16

显示Critical Message图标(系统×号图标)

VbQuestion

32

显示Warning Query图标(系统问号图标)

VbExclamation

48

显示warning Message图标(系统感叹号图标)

VbInformation

64

显示Information Message图标(系统信息图标)

VbDefaultButton1

0

第一个按钮是默认值

VbDefaultButton2

256

第二个按钮是默认值

VbDefaultButton3

512

第三个按钮是默认值

VbDefaultButton4

768

第四个按钮是默认值

强制

返回

VbApplicationModel

0

应用程序强制返回

VbsystemModel

4096

系统强制返回

VbMsgBoxHelpButton

16384

在对话框添加一个‘帮助’按钮

VbMsgBoxSetForeground

65535

指定对话框窗口作为前景窗口

VbMsgBoxRight

524288

对话框中的文本为右对齐

VbMsgBoxRtlReading

1048576

指定对话框中的元素从右到左显示

inputbox 输入提示框

InputBox(Prompt[, Title] [, Default] [, XPos, YPos] [, Helpfile, Context])