利用regsvr32注册和卸载wsc格式的com组件文件
[i=s] 本帖最后由 pcl_test 于 2017-3-24 08:20 编辑 [/i]看着网上满天飞舞的regsvr32,总感觉它离我们很远。下面通过一个vbs的例子来看看它的作用。
vbs编程就是要调用系统自带的com部件(公用接口部件)。这个com是什么东西?看看下面具体的例子吧。
我们自己创建一个com部件就清楚了。
1---把下面的代码保存为test.wsc,并右键选择注册它。这时你就知道网上满天飞的regsvr32是干什么用的了。[code]<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>
[/code]完成注册后,你就在你的系统里面注册了一个com部件。
怎么卸载?呵呵,你用下面的命令看看regsvr32 /?
记住你注册的com部件叫 component.zhao
2----接下了。我们来调用这个com
把下面的代码保存为 comtest.vbs点击就会显示 hello world.[code]
set my=createobject("component.zhao")
my.math[/code]我的这个例子可以说充分的说明了vbs是怎么调用com的。只是我们平时调用com都是系统自带的吧了。
你用上面的例子也可以创建你的类型库。
最后,你在注册表(通过运行regedit就进入了注册表)中的编辑按钮 输入你刚才注册的com部件的id 就是component.zhao,你执行搜索后就可以找到你注册的这个部件。
如果你删除在注册表中的这个部件,此时你再次点击comtest.vbs 就会报错了,hello world就不再出现了。
[[i] 本帖最后由 myzam 于 2011-3-11 11:06 编辑 [/i]] VBS真是好冷啊,帮你顶一下一步,知识点真是很清析
脚本部件的注册方法
要注册脚本部件方法有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进制。
回复 1楼 的帖子
在同一个wsc文件中,第一个com调用第二个com。wsc文件如下:[code]<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>[/code]右键注册上述控件后,在vbs中调用该控件的方法如下:[code]set my=createobject("component.zhao")
msgbox my.math.add(10)[/code]或[code]set my=createobject("component.zhao")
set my1=my.math
msgbox my1.add(10)[/code]
通过这个实验,应该明白vbs里面的语法 A.B.C是怎么回事了吧。
[[i] 本帖最后由 myzam 于 2011-3-15 21:31 编辑 [/i]]
页:
[1]