标题: [技术讨论] 利用regsvr32注册和卸载wsc格式的com组件文件 [打印本页]
作者: myzam 时间: 2011-3-10 23:37 标题: 利用regsvr32注册和卸载wsc格式的com组件文件
本帖最后由 pcl_test 于 2017-3-24 08:20 编辑
看着网上满天飞舞的regsvr32,总感觉它离我们很远。下面通过一个vbs的例子来看看它的作用。
vbs编程就是要调用系统自带的com部件(公用接口部件)。这个com是什么东西?看看下面具体的例子吧。
我们自己创建一个com部件就清楚了。
1---把下面的代码保存为test.wsc,并右键选择注册它。这时你就知道网上满天飞的regsvr32是干什么用的了。- <component id="component1">
- <registration progid="component.zhao"/>
- <public>
- <comment>hello</comment>
- <method name="math"/>
- </public>
- <script language="vbscript">
- function math()
- msgbox "hello world"
- end function
- </script>
- </component>
复制代码
完成注册后,你就在你的系统里面注册了一个com部件。
怎么卸载?呵呵,你用下面的命令看看regsvr32 /?
记住你注册的com部件叫 component.zhao
2----接下了。我们来调用这个com
把下面的代码保存为 comtest.vbs点击就会显示 hello world.-
- set my=createobject("component.zhao")
- my.math
复制代码
我的这个例子可以说充分的说明了vbs是怎么调用com的。只是我们平时调用com都是系统自带的吧了。
你用上面的例子也可以创建你的类型库。
最后,你在注册表(通过运行regedit就进入了注册表)中的编辑按钮 输入你刚才注册的com部件的id 就是component.zhao,你执行搜索后就可以找到你注册的这个部件。
如果你删除在注册表中的这个部件,此时你再次点击comtest.vbs 就会报错了,hello world就不再出现了。
[ 本帖最后由 myzam 于 2011-3-11 11:06 编辑 ]
作者: wc726842270 时间: 2011-3-12 09:40
VBS真是好冷啊,帮你顶一下一步,知识点真是很清析
作者: myzam 时间: 2011-3-14 23:04 标题: 脚本部件的注册方法
要注册脚本部件方法有2
法一: 选中脚本部件文件wsc,右键即可以注册部件,也可以从注册表中删除该部件。
法二:利用cmd
注册命令:regsvr32 scrobj.dll /i:d:\test.wsc
最好用参数 /i:
从注册表中删除脚本部件:
regsvr32 scrobj.dll /u /i:d:\test.wsc
同样要生成类型库也有2法:
法一 选中wsc文件,右键即可。
法二 命令方法
rundll32 scrobj.dll GenerateTypeLib -file:d:\my.tlb -url:d:\test.wsc -name:mytlb -guid:{12345678-1234-1234-1234-123456781234}
注意:1--首先要注册脚本部件,这时生成的类型库才会注册到注册表中。
2--guid即global uniform identify全局统一id,这是你以后在编程时调用类型库的id。注意数字位数结构,
并且是16进制。
作者: myzam 时间: 2011-3-15 21:26 标题: 回复 1楼 的帖子
在同一个wsc文件中,第一个com调用第二个com。
wsc文件如下:- <package>
- <component id="component1">
- <registration
- progid="component.zhao"
- />
-
- <public>
- <property name="math"/>
- </public>
- <script language="vbscript">
- function math
- set math=createcomponent("component2")
- end function
- </script>
- </component>
-
- <component id="component2">
- <registration
- progid="component.wei"
- />
-
- <public>
- <property name="add"/>
- </public>
- <script language="vbscript">
- function add(n)
- add=n+100
- end function
- </script>
- </component>
- </package>
复制代码
右键注册上述控件后,在vbs中调用该控件的方法如下:- set my=createobject("component.zhao")
- msgbox my.math.add(10)
复制代码
或- set my=createobject("component.zhao")
- set my1=my.math
- msgbox my1.add(10)
复制代码
通过这个实验,应该明白vbs里面的语法 A.B.C是怎么回事了吧。
[ 本帖最后由 myzam 于 2011-3-15 21:31 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |