Board logo

标题: [问题求助] wsh,fso,win有什么关系? [打印本页]

作者: yangfanzn    时间: 2014-3-2 21:35     标题: wsh,fso,win有什么关系?

我有一点Excel.VBA编程的经验,就我而言他们应该都是封装好的对象模型
实例化以后,就可以像如Excel中的Range对象那样去使用他们
但是
今天看了下VBS的相关教程,说wsh是专为脚本搭建的运行环境,不同的脚本文件可以通过这样一个运行环境得到正确的解释执行,并且wsh还与具体语言无关
然后我在VB的工程中引用“Windows Script Host Object Model”,发现他也具有这些对象
问题1、VB又不是脚本,为什么也会有与脚本相同的Wsh的一系列对象呢?
问题2、Wsh对象我数了下一共大概有14个,但是VB中引用的却没有14个,为什么会少呢?
问题3、wsh和fso、win又是个什么关系??
请高手解惑!
作者: yangfanzn    时间: 2014-3-2 23:21

应该是wsh、fso、wmi,笔误
作者: yu2n    时间: 2014-3-18 00:05

本帖最后由 yu2n 于 2014-3-18 00:27 编辑

问题1、VB又不是脚本,为什么也会有与脚本相同的Wsh的一系列对象呢?
问题2、Wsh对象我数了下一共大概有14个,但是VB中引用的却没有14个,为什么会少呢?
问题3、wsh和fso、wim又是个什么关系?
1. 问微软为什们要做VB/VBA/VBS的兼容吧,我猜是用户的需求。
2. 运行时不同,之所以有“相同”也是由于1中的原因。
3. wsh==“Windows 脚本宿主”==脚本解释程序,fso、wim是对象。它们的关系可以说是程序与对象的关系。

详细说说我了解的:
fso,wim 是“Object”,算是 ActiveX 对象,是微软提供的COM接口。
vb 引用的 Windows Script Host Object Model 算是 ActiveX 对象。

这里的 wsh 是指“Windows 脚本宿主”?
如果是,他是一个脚本解释程序(WScript.exe/CScript.exe),用来解释执行脚本中的源程序。相当于命令提示符程序"CMD.exe"。
wsh 中特有 WScript 对象,WScript 对象有14个属性/方法。
WScript 对象 并不等同于vb 引用的Windows Script Host Object Model ,它们的运行时(RunTime)不同,一个是 WSH ,一个是VB编译后的EXE。
但这个两个对象部分属性/方法兼容(或完全一致)。

你可能需要通读以下章节,在我现在看来也是非常有用,如果对VBS/VBA/VB熟悉的话,应该都看得懂:

《跟我从头学WSH》[转]
http://www.cnblogs.com/starspace/archive/2009/01/06/1369934.html
第二章 使用Object
一. Object术语
二. 创建和使用Object
三。 理解对象模型
(1)定义对象模型
(2)COM Object
(3)在实践中的COM
四。 脚本对象
(1)脚本对象模型
(2)WSH对象模型
五。常见对象模型
(1)写作数据对象
(2)ActiveX对象模型
(3)ADSI
(4)WMI
(5)IE





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2