文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发C/C++在C#中调用VBScript等脚本的实现(上)
精品推荐
特别推荐
·C语言编程易犯毛病集合
·C语言编程常见问题解答(目录)
·C#程序开发中的常用函数汇总
·C/C++笔试、面试题目大汇总
·Beej的网络socket编程指南
·socket编程原理
·C语言的常用库函数使用方法分析及用途
·在C语言中如何处理时间和日期
·C++设计模式之Singleton
·VC++动态链接库编程之MFC扩展 DLL
·TCP/IP网络重复型服务器通信软件的设计
·DirectX游戏开发入门
·经典与现代的结合:在MFC中集成RAD .NET框架
·Windows API-GDI入门基础知识详解(2)
·Visual C++ 入门精解
·C#基础概念二十五问
·用C#实现pdf文件的完整性验证
·成为嵌入式程序员应知道的0x10个问题
·TCP/IP编程实现远程文件传输
·几个C#编程的小技巧
热点TOP10
·socket编程原理
·简易的四则运算
·DirectX游戏开发入门
·C#程序开发中的常用函数汇总
·C#基础概念二十五问
·C++ builder 的文件读写操作总结
·C++设计模式之Singleton
·Visual C++ 入门精解
·Visual C++ 实现数字化图像的分割
·asp.net中调用javascript函数实现多功能日期控件示例
·《C语言程序设计》教学的几点体会
·C语言编程常见问题解答(目录)
·学生成绩管理系统实习
·C#操作Word文档(Office 2007)
·C# GridView 排序及分页
·C#代码与javaScript的相互调用
·C#编程中的 New 关键词的几种用法
·C#中ArrayList.CopyTo()运行错误的解决方法
·C#源码读取excel数据到程序中-SQL SERVER-到dataset中
·想成为嵌入式程序员应知道的0x10个基本问题

在C#中调用VBScript等脚本的实现(上)

日期:2004年5月14日 作者:清风网络学院 查看:[大字体 中字体 小字体]


以前在做工作流(workflow)项目的时候,里面有一项就是在用户制定流程定义时可以编写脚本来控制活动的跳转,而这些脚本定义后存在数据库中,当流程启动的时候,工作流引擎会控制活动执行顺序,串型的两个活动比较简单,但有的活动到下一个活动有条件判断,或者存在多个分支,简单的还好,只要在数据库表中加个字段就可以实现,复杂一点的就需要通过脚本实现了。当时经验不够,几天都没找到快速的解决办法,想自己写一个自定义脚本引擎没有把握,而且时间也不够,还是在网上找找看吧,花了一些时间,还是找到了一个自认为比较好的解决办法,写出来同大家分享。
  下面通过两部分来说明实现以及应用。

  一.使用MSScriptControl

  到微软的网站上下载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 属性,确定是否允许显示用户界面元素。

  如果读者需要更详细的了解,可以查看MSDN文档。

  为了使控件更容易使用,我用一个ScriptEngine类包装了一下,下面是完整代码:
  using System;

  using MSScriptControl;

  using System.Text;

  namespace ZZ

  {

     /// <summary>

     /// 脚本类型

     /// </summary>

     public enum ScriptLanguage


[1] [2] [3] [4] [5] 下一页 




上一篇:用调整图层给黑白照片上色

下一篇:在C#中调用VBScript等脚本的实现(下)

在C#中调用VBScript等脚本的实现(上) 相关文章:
·ASP.NET弹出式日历选择控件的实现
·在PB中如何实现数据模糊查询
·如何实现局域网打印机共享
·PB动态报表格式自由定义的实现
·Ajax实现分页查询
·PB程序中在普通激光打印机上实现条码打印
·用PM实现无损调整磁盘分区
·Java语言实现支持视频点播的WEB服务器
·Photoshop实现暴光过度照片的修复
·Cisco 3550交换机上流量控制的实现
在C#中调用VBScript等脚本的实现(上) 相关软件:
·TCP-IP详解卷2:实现
·Effective Oracle by design(脚本)
·TCP-IP详解卷二:实现
·Flash MX 2004动作脚本字典(CHM)
·Aerial Antics(实现你的飞翔梦) V1.0
·ASP.NET下MVC设计模式的实现
·三层交换机特点与实现分析
·Cisco 3640实现VOIP配置
·Oracle8i Internal Services(脚本)
·Windows脚本手册

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot