ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 7228|回复: 11

[原创] WINDOWS常用自动化对象简介

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-5-30 12:22 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:开发帮助和教程
附件内容DOC,和这个一样
事实上是写给脚本学习的朋友(WSH,VBS,JS)参考的,不过VBA也一样


1        自动化对象是什么?
这里的自动化指Microsoft的一个术语AUTOMATION,它是在COM对象基础上发展出来的,一堆鸟语,如果听不懂没关系,先理解成是方便使用的对象,一如结构化的程序,为了方便使用,提供标准函数,进化成API/DLL,后来就提供WINAPI,不过这是对象。
支持自动化的程序,包括VB、VBA、VBS、JS、VC以及其它大部分WINDOWS编程序语言,不过,在脚本系语言(JSCRIPT/VBSCRIPT)和VBA里是常见的,因为这两者往往强调借用其它对象达到编程的目的。
为了实现非本身设计的功能,VBA可以直接调用WINAPI接口函数,但在脚本语言里,这个路径是难以实现的,于是要从WINDOWS系统里调用“已有的类”(不是已有的API函数)生成对象,在VBA/VBS/JS里往往看到这种调用生成一个对象:
VBA的调用法
首先在工程里引用一个外部的库,然后当成一般的对象变量
DIM A AS NEW 某库.某类

或者是VBA和VBS的通用做法
SET A=CREATEOBJECT(“某库.某类”)  
ASP常见的是SET A=SERVER. CREATEOBJECT(“某库.某类”)
JSCRIPT的做法
var 某对象=new ActiveXObject("某库.某类");

除了NEW和CREATEOBJECT,还有从现有对象引用的GETOBJECT,都差不多
为什么要了解自动化对象
学会编程,了解结构化编程的作用以后,开始大概就是“写一些通用的,反复可以被我、别人使用的程序模块”,乐于助人,或者在碰了很次壁以后,会乐于被人助,想要“找一些通用的,反复可以使用的好用的模块”,更清楚一点就会知道,要找一些标准的,所有人机上都装了的函数最好:没错,就是传说中的库函数,更高级的就是系统API。
自动化对象也是一样,下面是介绍标准化的,常用的、几乎大家机上都装有的自动化对象——不是介绍大家怎么去装,也不是自已创建一个自动化对象库,而是知道、掌握找到这些常见的对象。
2        常用WINDOWS自动化对象:
2.1        脚本库文件系统对象FileSystemObject(简称FSO)
注册名称:Scripting.FileSystemObject
FSO用于对文件系统的访问,可用于如下工作:检查驱动器、文件夹、判断文件/文件夹的存在、修改或删除文件属性,以及对文本文件的顺序访问。
FSO不提供对二进制文件的访问。
FSO是脚本运行时库(Scripting)的组件,在WIN98以后版本中默认安装。
在WSH的文档中可找到FSO对象模型参考,在MSDN98的VB中文版部分可找到FSO的参考。
在我看来,FSO的意义是给大家一个标准的文件编程代码。“正常情况”下脚本几乎只能用这个玩文件,而且也是FSO在网页早期成为病毒代码常使用工具之一。
VBA本身有文件系统代码,但如果不是二进制类,转用FSO也不错。
2.2        脚本库字典对象Dictionary
注册名称Scripting.Dictionary
字典类,根据关键词查找对应数据,是脚本运行时库(Scripting)的组件,在WIN98以后版本中默认安装。
在WSH的文档中可找到Dictionary对象模型参考。
2.3        脚本正式表达式对象 Regexp
注册名称Vbscript.Regexp
提供使用正则表达式的对象。
但它不是和SCRIPTING在一起*_*,没有具体考证为什么。
在WSH的文档中可找到REGEXP对象模型、使用参考。
正则表达式用于以语法、词法查询和分析一个字串。在以前的编程语法,VB、VBA甚至早期的C、C++都没有提供类似的标准库,我们解析一个字符串用的LEFT、RIGHT、MID之类在面对更复杂的搜索和解析要求时会变得困难,正则表达式就有用了。
2.4        MSXML库系列对象模型
注册名称MSXML.Document、MSXML2.Document、Mircosoft.XMLDOM、MSXML2.XMLHTTP等
以上都是XML文档对象,在WIN98以后版本中(实际是随IE5安装),可使用MSXML.Document;
在IE6以后版本中可使用MSXML2.Document。只要有MSXML.Document,也可以用Microsoft.XMLDOM这个名称。
XML文档对象提供文档模型对XML文件进行访问、修改。另外,也可以用XPath语法访问。
XMLHTTP也提供XML语法对网页的流解析。它的意义在于,和W3的DOCUMENT不同的是,如果客户端对DOCUMENT对象下载之后,进行解析,做了事件和动作(包括脚本程序行为),可能在时间、效率上不合算,直接解析网页的原始符号效率高一些。但它的缺点是不能在对象层上分析,如果分析目标做了脚本和对象级的ENCODE跳转,分析就变得复杂了。
下载微软的MSXML说明文档MSXMLSDK安装,其中有XML参考对象模型
2.5        OFFICE库WORD、EXCEL和ACCESS等对象
注册名称:Excel.Application、Word.Application、Access.Application等
OFFICE自动化对象按各自安装的应用程序以APPLICATION为根,随OFFICE安装后才能使用,在一般办公性的处理程序中很有用。
安装OFFICE时选中VBA帮助(默认不安装,可用安装盘添加组件),其中有OFFICE对象模型和使用方法。
虽然不是WINDOWS自带,不过几乎是大部分系统有的对象,特别是EXCEL和WORD。它们也是VBA得以推广的基础。
事实上,EXCEL似乎被用得最多,相对来说,WORD虽然在办公领域常用,但数据处理的应用当然是电子表格更多 罢。
2.6        Adodb库数据连接对象
注册名称:ADODB.Connect、ADODB.Record等
访问ODBC数据库接口的重要对象,几乎是M$的数据编程标准,差不多凡是能在WINDOWS上运行的商业化数据库都提供ADO接口,所以在很多VB或VFP、网站ASP编程中都会用到。它可用于访问各种数据库,但因为不同的数据库有不同的ADO参数,编程人员应对特定数据库连接方式有所了解。
MSDN98中有ADO相关参考,但是没有新版本新增对象参考(如ADO2.5的stream),尚不清楚ADO2.5以后的完整参考文档取得方法,可能是随ADO2.X对象下载安装单独提供文档。
2.7        IE文档模型对象
注册名称:InternetExplorer.Application
代表网页浏览器IE的对象,在程序可用它实现访问网页的功能。
注意一下这个对象,首先,IE APPLICATION包含了 WEB DOCUMENT在内,这是W3的一个DOCUMENT子集(有兼容性部分的文档会有说明),另外,网页从DOCUMENT对象开始的编程是大部分网页标准兼容的。
注意在MS的WEB 控件里也有类似的对象结构,因为它们从DOCUMENT对象以下都是相似的,但WEB 控件本身不是AUTOMANTION对象,这意味着你不能用CREATEOBJECT直接向系统请求创建一个实例,特别是在脚本里这么做。
安装了IE5及以后的版本都会有这个对象,也就是WIN98第2版以后都有,熟悉这个对象结构对网页和其它脚本编程很有用。
在OFFICE2000可找到HTMLREF文档有关于IE对象的参考
2.8        WINDOWS系统桌面对象Shell.Application
桌面对象,可能代表EXPLORER.exe,但是它在WIN98以后才出现,也可能是结合IE的一个对象,MSDN98中以索引关键字”SHELL OBJECT”可以找到SHELL的对象模型(SHELLCC.CHM)。可以用来操纵文件夹对象,做COPY、MOVE之类的工作(FSO对象也有这些功能),也可以做一些桌面操作,如SHUTDOWNWINDOWS(关机)、BrowseForFolder(打开文件夹)
在MSDN98和MSDN NET都有它的模型说明,不同版本的WINDOWS系统EXPLORER模型不同。
2.9        WSH脚本宿主对象
WScript.Shell,WScript.Network
可用于运行应用程序、网络维护和注册表。
但应注意的是,和WSH本身不同,直接运行WSH可以调用一些WSH内部的对象,在上述两个对象不能直接用。
下载WSH随说明文档可找到对象模型参考。另外MSDN98用WSCRIPT索引也可找到早期WSCRIPT对象参考的英文版本。

常用WINDOWS自动化对象.rar

11.42 KB, 下载次数: 254

评分

3

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-5-30 12:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
非常感谢楼主的分享.

TA的精华主题

TA的得分主题

发表于 2011-5-30 12:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-5-30 12:47 | 显示全部楼层
谢谢,不错,就是内容有点少,内容在丰富些,补充些应用示例应该会火的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-5-30 12:57 | 显示全部楼层
给楼上,这是给朋友看说“都有些什么常用外部对象可用、编程用到了哪些(代码里哪些不属于它自已的对象),这些东东的帮助要从哪些去找”的参考。
如果是应用......几乎每个对象展开来都是一个专题。比如FSO,ADO,它的文档我看着也经常头晕的说,WEB的文档应用,能搞清楚从IE或WEB CONTROL下引用DOCUMENT,那就很不错了,然后干什么?你能找到文档,象查字典一样查出想要用的方法、属性、集合,差不多就合格了。

TA的精华主题

TA的得分主题

发表于 2011-5-30 19:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
同意四楼说法,谢谢分享。

TA的精华主题

TA的得分主题

发表于 2012-5-4 09:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习了{:soso_e179:}

TA的精华主题

TA的得分主题

发表于 2012-5-5 18:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-7-26 11:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
留着学习!

TA的精华主题

TA的得分主题

发表于 2012-12-21 15:34 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-9 11:41 , Processed in 0.028633 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表