27 lines
1.7 KiB
Plaintext
27 lines
1.7 KiB
Plaintext
|
|
COM接口调用
|
|||
|
|
1.注册:
|
|||
|
|
注册有两种方法:常规注册方法、进程内注册方法。常规注册方法会写注册表,可能导致安全软件报警或者被检测。进程内注册方法不写注册表,没有这些问题,但是只在当前进程有效,新的进程要重新注册。
|
|||
|
|
|
|||
|
|
1)常规注册方法:在同一台电脑上,模块文件或者路径不变化时,只要注册一次即可。
|
|||
|
|
注册本模块可使用regsvr32命令,也可以直接调用本模块的DllRegisterServer接口。
|
|||
|
|
注册本模块的vbs例子如下(管理员权限):
|
|||
|
|
Set wshshell = CreateObject("wscript.shell")
|
|||
|
|
wshshell.run "regsvr32 /s ""D:\Plugin\wyhkm.dll"""
|
|||
|
|
无管理员权限注册模块的例子如下:
|
|||
|
|
Set wshshell = CreateObject("wscript.shell")
|
|||
|
|
wshshell.run "regsvr32 /s /n /i:user ""D:\Plugin\wyhkm.dll"""
|
|||
|
|
|
|||
|
|
注意:如果在64位系统中使用的是32位模块,双击直接运行vbs文件是用64位脚本执行器执行,会导致失败。运行C:\Windows\SysWOW64\cmd.exe,再到其中运行vbs就能正常调用模块了。
|
|||
|
|
|
|||
|
|
2)进程内注册方法:调用模块的DllInstall导出函数,第一个参数传入32位整型数1,第二个参数传入32/64位整型数2(32位模块中是32位整型数,64位模块中是64位整型数)。返回值大于等于0时注册成功。vbs不支持直接调用dll的导出函数,这里就不给例子了。
|
|||
|
|
|
|||
|
|
2.创建对象:
|
|||
|
|
模块中的函数使用前,先创建对象,再使用对象调用函数。
|
|||
|
|
创建本模块的对象的vbs例子如下:
|
|||
|
|
Set wyhkm=CreateObject("wyp.hkm")
|
|||
|
|
|
|||
|
|
调用函数的完整例子(不包含注册):
|
|||
|
|
Set wyhkm=CreateObject("wyp.hkm")
|
|||
|
|
ver = wyhkm.GetVersion()
|
|||
|
|
MsgBox "模块版本:" & Hex(ver), 4096
|