有人能告诉我为什么这行错误:
set my_obj = wscript.CreateObject("ObjectTest","pref_")
它给出了这个错误:
需要的对象:' wscript'
如果我运行此代码:
Set WScript = CreateObject("WScript.Shell")
set my_obj = CreateObject("ObjectTest","pref_")
我得到了这个错误:
对象不支持此属性或方法:' CreateObject'
我在Delphi应用程序中运行vbscript。
答案 0 :(得分:2)
需要的对象:' wscript'
我在Delphi应用程序中运行vbscript。
这就是您的脚本失败的原因。 t
对象仅在脚本由wscript
运行时定义。要执行您尝试的操作,您需要实现自己的对象并将其提供给脚本环境,以便脚本代码在需要时访问。
假设您使用IActiveScript
来运行脚本,您可以编写实现IDispatch
接口的COM Automation对象,然后您可以创建该对象的实例并将其提供给{ {3}}之前调用IActiveScript.AddNamedItem()
开始运行脚本的方法。
例如,编写一个公开自己的wscript.exe
方法的Automation对象,将其提供给名为CreateObject()
的{{1}},然后脚本可以调用AddNamedItem()
。然后,您的App
实现可以创建真实请求的对象,并根据需要将事件处理程序连接到它。要将事件重新激活回脚本,请使用IActiveScript.SetScriptState()
方法检索脚本中定义的所需过程的App.CreateObject()
,然后将IActiveScript.GetScriptDispatch()
与DISPID 0和{{1}一起使用} flag用所需的输入参数执行该过程。
您的对象可以实现您希望脚本有权访问的任何属性和方法。
答案 1 :(得分:0)
您的脚本失败的原因是出现了几次。
WScript
”作为对象,尤其是在Windows-Based Script Host
(或WSH
)中编码时,因为程序假定您正在运行{{ 1}} 或调用 wscript.exe
命令。WScript
!如果第一条规则不为空,这就是原因。在 VBScript 中使用命令“Dim
”要求用户Option Explicit
任何 Dim
或调用 object
。一个固定的代码是:
object