我用ScriptControl1控件,打开我写的VBScript脚本。现在脚本中需要调用程序中的函数。带参数的。我该怎么实现
Do Until EOF(1)
Line Input #1, strline
strtmp = IIf(Len(strtmp) = 0, strline, strtmp & vbCrLf & strline)
Loop
Close #1
With ScriptControl1
.Language = "VBScript"
.Reset
.AddCode strtmp
.AddObject "List", List1, True
'.AddObject "Text", Text2, True
.Run "main"
End With
Next
脚本有脚本的环境,如果想要做不属于脚本解释器本身功能的事情,需要有一套机制去调节这种需求,ScriptControl可以执行脚本,也有相关的属性或对象取得或设置脚本内容,但是你想把脚本与VB程序结合起来使用,就需要自己定制一套机制去处理,就好像ASP中的Server.URLEncode这个功能,VBS中本身没有这个功能,如果想用ScriptControl做这样的效果,可以在加载解释的脚本前先加载这样的类,如:
Calss ServerClass
Public Function URLEncode(strText)
...
End Function
End Class
Set Server = New ServerClass
然后再加载目标脚本数据,如:
outText = Server.URLEncode("测试内容")
以这种方式来扩展脚本,当然,还可进行文本替换或变量值提取等方式去处理脚本,甚至可以自己去解析脚本,这就看你的需求而言了。比如你说的想通过脚本来让VB得到相关参数,这需要VB主动去读取运行脚本后的变量值,如脚本内容为:
Test1 = 300
VB 里可以通过对象属性读出脚本变量值,如:
Msgbox ScriptControl1.CodeObject.Test1
当然,还可在脚本中放置更为复杂的过程,VB里还可分析脚本代码然后再提取代码来分析执行,至于怎么做,方法有很多,这就要你自己慢慢做了,我只能给你个方向,具体的还要靠你自己