标题: [问题求助] 关于wscript对象的方法的问题 诸如createobject quit等 [打印本页]
作者: jyswjjgdwtdtj 时间: 2023-3-5 20:04 标题: 关于wscript对象的方法的问题 诸如createobject quit等
本帖最后由 jyswjjgdwtdtj 于 2023-3-5 22:03 编辑
改了标题[哭]
getobject除了wmi还能怎么用?试了一下
set xls=getobject("1.xls")
居然没报错?但是怎么用?
当然我装了wps(office)和vba
wscript的Interactive属性怎么用?
CreateObject和wscript.createobject有什么区别?
WScript.Quit(1)
后面这个1返回到哪里去了?
wscript.ConnectObject和wscript.disConnectObject怎么用?
作者: Batcher 时间: 2023-3-5 20:21
请阅读论坛发帖规则,尤其是标题相关的内容:
http://bbs.bathome.net/thread-963-1-1.html
作者: czjt1234 时间: 2023-3-5 20:24
本帖最后由 czjt1234 于 2023-3-5 20:28 编辑
WScript.Interactive
该属性的初始值为True
如果设为False,则禁用用户交互模式,即不执行输入输出语句
注意:禁用用户交互模式后,不能再启用
示例
- Dim s
-
- MsgBox WScript.Interactive 'True (初始值)
- MsgBox "秦时明月汉时关" '正常执行
- WScript.Interactive = False '禁用用户交互模式
- MsgBox "万里长征人未还" '不执行
- s = InputBox("请输入") '不执行
- WScript.Interactive = True '禁用以后不能再启用
- MsgBox "但使龙城飞将在" '还是不执行
- WScript.Echo "不教胡马度阴山" '还是不执行
- s = InputBox("请输入") '还是不执行
复制代码
作者: czjt1234 时间: 2023-3-5 20:29
CreateObject()函数是vbs的内置函数,在.hta文件、office宏、IE等环境都可以使用
而这些环境不支持WScript对象,也就不可以使用WScript.CreateObject()方法
CreateObject()函数,其第二个参数用于在远程服务器上创建对象
WScript.CreateObject()方法,其第二个参数用于绑定对象的事件
作者: czjt1234 时间: 2023-3-5 20:31
一个批处理调用vbs,并读取vbs的返回码的示例- 'vbs示例:用于批处理调用vbs,并获取vbs的返回码
- WScript.Quit 20147578
复制代码
- @echo off
- D:\test.vbs
- echo %errorlevel%
- pause
复制代码
作者: czjt1234 时间: 2023-3-5 20:32
- '要求已安装office - Word
- 'Word对象支持Quit()事件
- Dim oWord
-
- '创建对象,并绑定事件处理程序
- Set oWord = WScript.CreateObject("Word.Application", "Word_")
-
- '为对象取消事件处理程序
- WScript.DisconnectObject(oWord)
-
- oWord.Visible = True
-
- WScript.Sleep 5000 '延时5秒
- oWord.Quit() '事件处理程序已取消关联,不会被执行
-
- MsgBox "ok"
-
- Sub Word_Quit()
- MsgBox "Quit()事件处理子程序", vbSystemModal
- WScript.Quit()
- End Sub
复制代码
作者: czjt1234 时间: 2023-3-5 20:34
- '要求已安装office - Word
- 'Word对象支持Quit()事件
- Dim oWord
-
- Set oWord = CreateObject("Word.Application")
- WScript.ConnectObject oWord, "Word_"
-
- oWord.Visible = True
-
- Do
- WScript.Sleep 500 '等待用户关闭Word
- Loop
-
- Sub Word_Quit()
- MsgBox "Quit()事件处理子程序", vbSystemModal
- WScript.Quit()
- 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/
作者: czjt1234 时间: 2023-3-5 20:37
获取已有的对象,只能用GetObject()函数- 'GetObject()函数示例,不能用WScript.GetObject()方法
- Dim obj
-
- Set obj = GetObject("WinNT:")
- MsgBox TypeName(obj)
-
- Set obj = GetObject("Winmgmts:")
- MsgBox TypeName(obj)
复制代码
某些应用程序可以只激活文件的一部分
格式是:在文件名的结尾处添加!,并在其后附加要激活部分的标识字符串
比如某.CAD文件包含3个图层,可以只打开其第三个图层,标识符Layer3
如果文件支持多个Automation对象,则同时指定文件和对象progid'示例 (本脚本未经验证)
'要求已安装AutoCAD软件和FIGMENT软件,假定相关文件和文件夹已存在- Dim oCAD, oDRW
-
- Set oCAD = GetObject("D:\CAD\SCHEMA.CAD!Layer3")
- MsgBox TypeName(oCAD)
-
- Set oDRW = GetObject("D:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
- MsgBox TypeName(oDRW)
复制代码
作者: jyswjjgdwtdtj 时间: 2023-3-5 21:56
回复 8# czjt1234
牛逼!
作者: 老刘1号 时间: 2023-3-5 21:57
本帖最后由 老刘1号 于 2023-3-5 22:31 编辑
- Set oWord = GetObject(, "Word.Application")
复制代码
这样写如果已经有word运行可以直接获得,不会开一个新的word。
作者: czjt1234 时间: 2023-3-6 09:05
回复 9# jyswjjgdwtdtj
我发了个vbs中文手册0.3,都是直接复制的里面的内容啊
作者: jyswjjgdwtdtj 时间: 2023-3-6 17:48
所以说getobject就是永远都只有一个实例 而createobject就是创建一个新实例?
作者: jyswjjgdwtdtj 时间: 2023-3-6 17:58
回复 11# czjt1234
那个百度网盘链接我打开了 但是在哪里呢?
是在里面的chm文件里吗
里面的几个chm文件都是坏的额
作者: czjt1234 时间: 2023-3-6 20:28
回复 13# jyswjjgdwtdtj
就在vbs目录下
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |