Board logo

标题: [技术讨论] 利用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是干什么用的了。
  1. <component id="component1">
  2. <registration progid="component.zhao"/>
  3. <public>
  4.   <comment>hello</comment>
  5.   <method name="math"/>      
  6. </public>
  7. <script language="vbscript">
  8.   function math()
  9.      msgbox "hello world"
  10.   end function
  11. </script>
  12. </component>
复制代码
完成注册后,你就在你的系统里面注册了一个com部件。
怎么卸载?呵呵,你用下面的命令看看regsvr32 /?
记住你注册的com部件叫 component.zhao
2----接下了。我们来调用这个com
把下面的代码保存为 comtest.vbs点击就会显示  hello world.
  1. set my=createobject("component.zhao")
  2. 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文件如下:
  1. <package>
  2. <component id="component1">
  3. <registration
  4. progid="component.zhao"
  5. />
  6. <public>
  7.   <property name="math"/>
  8. </public>
  9. <script language="vbscript">
  10. function  math
  11. set math=createcomponent("component2")
  12. end function
  13. </script>
  14. </component>
  15. <component id="component2">
  16. <registration
  17. progid="component.wei"
  18. />
  19. <public>
  20.   <property name="add"/>
  21. </public>
  22. <script language="vbscript">
  23. function add(n)
  24. add=n+100
  25. end function
  26. </script>
  27. </component>
  28. </package>
复制代码
右键注册上述控件后,在vbs中调用该控件的方法如下:
  1. set my=createobject("component.zhao")
  2. msgbox my.math.add(10)
复制代码
  1. set my=createobject("component.zhao")
  2. set my1=my.math
  3. msgbox my1.add(10)
复制代码


通过这个实验,应该明白vbs里面的语法  A.B.C是怎么回事了吧。

[ 本帖最后由 myzam 于 2011-3-15 21:31 编辑 ]




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