当前位置:编程学习 > JS >>

C#利用msscript.ocx控件执行JS脚本

到微软的网站上下载Windows Script Control,它是一个ActiveX(R) 控件,所以在.NET中使用我Interop了一下。下载安装完成后,新建一个C#的Windows应用程序项目,在解决方案资源管理器中选中引用节点,右键点击选择添加引用菜单,弹出添加引用对话框,单击浏览找到安装Windows Script Control的目录,选取msscript.ocx文件确定。那么在引用节点下会增加一个MSScriptControl组件,下面是他Interop后的所有对象。
 
\
ScriptControl 对支持 ActiveX(TM) Script 的宿主 Script 引擎提供简单接口。接下来我们对被转化成ScriptControlClass类的ScriptControl的属性和方法进行一些说明。

 

属性

 

属性 描述 AllowUI 应用于 ScriptControl 本身或 Scirpt 引擎显示的用户界面元素,可读写。 CodeObject 返回对象,该对象用于调用指定模块的公用成员。只读。 Error 返回 Error 对象,其中包含所发生的最后一个错误的相关详细信息。只读。 Language 设置或返回正在使用的 Script 语言名称。可读写。 Modules 为 ScriptControl 对象返回模块集合。只读。 Procedures 返回在指定模块中定义的过程集合。只读。 SitehWnd 设置或返回窗口的 hWnd,通过执行 Script 代码,此窗口用于显示对话框和其他用户界面元素。可读写。 State 设置或返回 ScriptControl 对象的模式。可读写 Timeout 设置或返回时间(毫秒),此时间后用户可选择中止 Script 代码的执行或允许代码继续执行。可读写。 UseSafeSubset 设置或返回 Boolean 值,指明宿主应用程序是否有保密性要求。如果宿主应用程序需要安全控制,则 UseSafeSubset 为 True,否则为 False。可读写。
方法
方法 描述 AddCode 向模块添加指定代码。可多次调用 AddCode 方法 AddObject 使主机对象模型对 Script 引擎可用 Eval 计算表达式并返回结果 ExecuteStatement 执行指定的语句 Reset 放弃所有已经添加到 ScriptControl 中的 Script 代码和对象 Run 运行指定过程
事件
事件 描述 Error 出现运行时错误时,发生此事件 Timeout 当超出了 Timeout 属性指定的时间且用户在结果对话框中选定了 End 时,发生此事件
说明:
AllowUI 属性如果设置为False,则显示对话框之类的语句不起作用,如在 VBScript 中MsgBox 语句,JavaScript中的alert等,并且如果执行的脚本超出TimeOut设置的毫秒数,也不会跳出超出时间提醒的对话框,反之则相反;重新设 置 Language 属性会清空AddCode加载的代码;对于TimeOut属性,发生超时时,ScriptControl 检查对象的 AllowUI 属性,确定是否允许显示用户界面元素。

 

为了使控件更容易使用,用ScriptEngine类封装一下,下面是完整代码:
\代码
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,