根据“脚本魔术师”的经验,发现用户只需要一种简单好用的脚本语言,并不需要很多语法的啰嗦。
“脚本魔术师”调用Win32 API 时只能做到传值的调用,对于要求用指针传递参数并未做合适的处理。
不过有上次的实现经验,这次写起来还是有一点信心。
先看一段vbscript 的代码:
dim Api
dim Param1
dim Param2
Set Api=NewObject("CCall") '获得CCall 实例
Set param1=NewObject("CMemory") '新增的内存管理对象
Set Param2=NewObject("CMemory") '参数2
Param1.NewStructMemory "lpName=s255" ' GetComputerName 函数 的第一个参数,分配255个字节
Param2.NewStructMemory "lpSize=p" ' GetComputerName 函数的第二个参数,该参数要求传指针
Param2.LetItemValue "lpSize",255 '赋值为255
dim addr
Api.LoadLib "Kernel32" 'GetComputerName 的库
addr=GetProcAddr("GetComputerNameA") '取得函数地址
Api.CallByAddress addr,Param1,Param2 '这样就完成了API的调用,其实可以用一个函数完成 CallApiByName(DllName,sFunctionName,Param....)
<