[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 czjt1234 于 2023-3-5 20:28 编辑

WScript.Interactive
该属性的初始值为True

如果设为False,则禁用用户交互模式,即不执行输入输出语句

注意:禁用用户交互模式后,不能再启用
示例

  1. Dim s
  2. MsgBox WScript.Interactive     'True  (初始值)
  3. MsgBox "秦时明月汉时关"          '正常执行
  4. WScript.Interactive = False    '禁用用户交互模式
  5. MsgBox "万里长征人未还"          '不执行
  6. s = InputBox("请输入")          '不执行
  7. WScript.Interactive = True     '禁用以后不能再启用
  8. MsgBox "但使龙城飞将在"          '还是不执行
  9. WScript.Echo "不教胡马度阴山"    '还是不执行
  10. s = InputBox("请输入")          '还是不执行
复制代码

QQ 20147578

TOP

CreateObject()函数是vbs的内置函数,在.hta文件、office宏、IE等环境都可以使用
而这些环境不支持WScript对象,也就不可以使用WScript.CreateObject()方法

CreateObject()函数,其第二个参数用于在远程服务器上创建对象
WScript.CreateObject()方法,其第二个参数用于绑定对象的事件

QQ 20147578

TOP

一个批处理调用vbs,并读取vbs的返回码的示例
  1. 'vbs示例:用于批处理调用vbs,并获取vbs的返回码
  2. WScript.Quit 20147578
复制代码
  1. @echo off
  2. D:\test.vbs
  3. echo %errorlevel%
  4. pause
复制代码

QQ 20147578

TOP

  1. '要求已安装office - Word
  2. 'Word对象支持Quit()事件
  3. Dim oWord
  4. '创建对象,并绑定事件处理程序
  5. Set oWord = WScript.CreateObject("Word.Application", "Word_")
  6. '为对象取消事件处理程序
  7. WScript.DisconnectObject(oWord)
  8. oWord.Visible = True
  9. WScript.Sleep 5000  '延时5秒
  10. oWord.Quit()        '事件处理程序已取消关联,不会被执行
  11. MsgBox "ok"
  12. Sub Word_Quit()
  13.     MsgBox "Quit()事件处理子程序", vbSystemModal
  14.     WScript.Quit()
  15. End Sub
复制代码

QQ 20147578

TOP

  1. '要求已安装office - Word
  2. 'Word对象支持Quit()事件
  3. Dim oWord
  4. Set oWord = CreateObject("Word.Application")
  5. WScript.ConnectObject oWord, "Word_"
  6. oWord.Visible = True
  7. Do
  8.     WScript.Sleep 500    '等待用户关闭Word
  9. Loop
  10. Sub Word_Quit()
  11.     MsgBox "Quit()事件处理子程序", vbSystemModal
  12.     WScript.Quit()
  13. End Sub
复制代码
建议在WScript.CreateObject方法创建对象时,直接指定事件处理程序
因为并非所有对象都可以用WScript.ConnectObject方法连接事件处理程序

比如InternetExplorer.Application对象就不支持WScript.ConnectObject方法
参考文档:Why does WScript.ConnectObject not always work?
https://blogs.msdn.microsoft.com ... ct-not-always-work/

QQ 20147578

TOP

获取已有的对象,只能用GetObject()函数
  1. 'GetObject()函数示例,不能用WScript.GetObject()方法
  2. Dim obj
  3. Set obj = GetObject("WinNT:")
  4. MsgBox TypeName(obj)
  5. Set obj = GetObject("Winmgmts:")
  6. MsgBox TypeName(obj)
复制代码
某些应用程序可以只激活文件的一部分
格式是:在文件名的结尾处添加!,并在其后附加要激活部分的标识字符串
比如某.CAD文件包含3个图层,可以只打开其第三个图层,标识符Layer3

如果文件支持多个Automation对象,则同时指定文件和对象progid'示例 (本脚本未经验证)
'要求已安装AutoCAD软件和FIGMENT软件,假定相关文件和文件夹已存在
  1. Dim oCAD, oDRW
  2. Set oCAD = GetObject("D:\CAD\SCHEMA.CAD!Layer3")
  3. MsgBox TypeName(oCAD)
  4. Set oDRW = GetObject("D:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
  5. MsgBox TypeName(oDRW)
复制代码

QQ 20147578

TOP

回复 9# jyswjjgdwtdtj


   我发了个vbs中文手册0.3,都是直接复制的里面的内容啊

QQ 20147578

TOP

回复 13# jyswjjgdwtdtj


   就在vbs目录下

QQ 20147578

TOP

返回列表