一,前言
很多知识用到时总是不太把握,往往都得要上网找资料查一番。
将一些实用的资料收藏在这里,作备忘之用。本贴随时会更新。
部分资料来源于网络,感谢分享者,如有雷同,绝无恶意,皆为学习。
--------------------------------------------------------------------------------
随着动态网页的出现,脚本语言已经被越来越多的人认识、接受并撑握。在程序中加入对脚本的支持一方面可以最大限度的扩展程序的应用范围,另一方面也方便程序员利用现有脚本提供的一些特别的功能(如正则表达式等)。
很显然要自己去实现一个脚本解释器是不现实的。好在已经有了可以复用的组件,那就是Microsoft ScriptControl 。这是一个ActiveX控件,随Windows2000一起发布,如果要在2000以前的Windows中使用则需要安装该控件(可以到MS的网上找到)。
ScriptControl接口
属性名称
类型
备注
AllowUI
BOOL
检测是否允许运行用户的接口元素。如果为False,则诸如消息框之类的界面元素不可见。
CodeObject
Object
脚本暴露给宿主调用的对象。只读。
Modules
Modules
宿主提供给脚本的组件库模块。只读。(COM组件通常都是以对象收集的形式向用户提供可以留给用户二次开发的对象集合,每一个收集即一个Modules)
Language
String
设置或获取脚本引擎解释的语言,例如:VBScript、JScript。
Name
String
脚本引擎的名称。只读。
Procedures
Procedures
返回模块中定义的过程的集合
SitehWnd
HWND
在脚本中显示UI的父窗口句柄
State
Enum
设置或返回控件的状态,如果为0,控件只执行语句但不转发事件,为 1则为加入的本控件接受的对象转发事件。
Timeout
Long
控件的执行脚本的超时值,-1表示不超时
UseSafeSubset
BOOL
设置或返回宿主程序是否关心安全。宿主程序的安全级别可以从此属性设置
Error
Error
错误对象,发生错误时,此属性返回一个错误对象
方法名称
参数
功能
AddCode
Code As String
往脚本引擎中加入要执行的脚本
AddObject
Name As String, Object As Object, [AddMembers As Boolean = False]
往脚本引擎加入一个对象,以便在脚本中可以使用该对象提供的方法等 。
Eval
Expression As String
表达式求值
ExecuteStatement
Statement As String
解释并执行脚本语句
Reset
丢弃所有的对象和代码,将State属性置0。
Run
ProcedureName As String, ParamArray Parameters() As Variant
运行一个指定的过程
事件名称
功能
Error
有错误发生时激发该事件
TimeOut
执行过程超时时发生
一般使用方法
1、在程序中加入ScriptControl
2、定义一个ScriptControl的实例
3、调用AddCode等方法向脚本引擎中加入要执行的脚本。
4、调用Run执行要执行的脚本函数。
宿主与脚本的通讯
1、 宿主调用脚本:这个过程比较简单,只要调用Run就可以将参数传递到脚本。
2、 脚本调用宿主:在初始化过程中调用AddObject接口,将宿主的一个或多个对象暴露给脚本,这时就可以在脚本中调用宿主 对象的方法。在VC++中这个对象不是普通的C++类,它必须支持自动化,在脚本中也只能调用对象中自动化接口(在VB中这个相对比较单)。
脚本调试
任何人写的代码都不可能一次就很完美,但是脚本由于执行的位置特殊,调试方法也不一样。 首先下载一个脚本调试器(我用的是Microsoft Script Debugger, 网站有下载,另据说其它的如VJ++也可以),安装以后在菜单上没有启动菜单。
调试器的启动
在一般的高级语言中都可以方便的设置断点,但是在启动脚本调试器以前如何开始调试呢?在 IE中脚本出错会自动提示是否调试,还可以在脚本中加入中断 代码(VBScript: Stop JavaScript: debugger) ,但是在ScriptControl还需要修改一下注册表才可以,你需要将HKEY_CURRENT_USER\Software\Microsoft\Windows Script\Settings下的 JITDebug的值改为1(默认为0)
例子
下面是个易语言的例子
.版本 2
.子程序 子程序
CoInitialize (0)
.判断开始 (脚本对象.创建 (“ScriptControl”, ))
.默认
信息框 (“UnOk”, 0, )
.判断结束
.判断开始 (脚本对象.写属性 (“Language”, “javascript”))
.默认
信息框 (“UnOk”, 0, )
.判断结束
脚本对象.方法 (“AddCode”, #JSFunc)
输出调试文本 (脚本对象.取错误 ())
编辑框T.加入文本 (脚本对象.通用方法 (“Run”, “coo”, “cooFunction”).取文本 (), #换行符)
输出调试文本 (脚本对象.取错误 ())
CoUninitialize () 待续...线程中调用
API_CoInitialize ()
API_CoUninitialize ()
分享到:
相关推荐
对于更复杂的脚本控制,你可以使用ScriptControl的ExecuteStatement方法执行单条语句,或者使用Run方法执行整个代码块。这种方法在需要动态生成或执行代码的场合非常有用,例如根据用户输入自动生成报表或处理数据。...
VBS(Visual Basic Script)脚本文件是微软的一种脚本语言,它常用于自动化任务和创建简单的程序。在这个压缩包中包含的VBS脚本文件可能是用于演示如何使用海康OCX控件的实例代码。开发者可以通过阅读和学习这些脚本...
ASP.NET AJAX的核心组件是Microsoft ASP.NET AJAX Framework,它包括服务器端的ASP.NET AJAX Extensions和客户端的ScriptControl Library。这些组件协同工作,使得开发者可以在服务器端代码中轻松实现异步操作。我们...
**Bing Maps AJAX Control** 是由微软提供的一个强大的地图开发工具包,它允许开发者轻松地将交互式地图集成到自己的网站或应用中。版本 7.0 带来了许多新功能和改进,使地图开发变得更加简单和高效。 ##### 1.1 ...
4. **ASP.NET AJAX客户端库**:书中会讨论Microsoft的Atlas库(后来称为ASP.NET AJAX Client Library),它是实现AJAX功能的核心库,包括ScriptControl、ScriptComponent、ScriptService等概念。 5. **AJAX最佳实践...
1. **scrrun.dll**:这是一个Microsoft Script Control运行库文件,用于支持脚本语言的运行,可能在此辅助工具中用于处理汉字转拼音的算法实现。 2. **AuxiliaryProgramOfVOCALOID.exe**:这是Vocaloid汉字转拼音...
1,01.zip ActiveX script hosting ActiceX script主机程序(20KB)<END><br>2,02.zip ActiveX Control Tutorial ActiveX控件指南(11KB)<END><br>3,03.zip An ASP Component to Send Arbitary Large ...
在压缩包文件"ajax 2005"中,可能包含了安装指南、源代码示例、控件库文件和其他相关的资源,用于帮助开发者在VS2005中集成和使用Ajax功能。安装这些工具包后,开发者可以通过Visual Studio的工具箱访问新增的Ajax...
此外,可能会讲解如何使用ASP.NET AJAX Control Toolkit,这是一个包含许多预构建的UI控件和行为的库,可以轻松添加高级交互功能,如日期选择器、滑块、自动完成等。这些控件通常与C#后台代码紧密配合,提供丰富的...
在MOSS中,有几种方法可以创建Ajax启用的Web部件,例如使用ASP.NET AJAX Control Toolkit或自定义开发。这里,我们将使用"QuickPart",一种可以轻松实现Ajax化的SharePoint组件。 第四步:配置Web部件以使用Ajax ...
`ReadMe.Txt` 文件通常是提供项目说明或使用指南的文本文件,可能包含了如何使用这个程序获取文件信息的详细步骤。而`FileInfo.vbw` 是VB6项目的工作区文件,保存了用户的窗口位置、工程组成员以及其他设置。 获取...
- Mobile控件中没有Repeater控件,可以使用Mobile:List控件替代。 #### 四、总结 虽然VS2010在WAP开发方面不如VS2008直观,但通过上述步骤的配置,依然可以在VS2010中实现高效、流畅的WAP开发。对于初学者而言,...
1. **Dcg.ahp**:这可能是一个帮助文件,包含了关于如何使用DCG的详细指南和教程。 2. **SAMPLE.DCG**:这是一个示例DCL文件,展示了DCG可以生成的对话框布局和代码结构。 3. **DCG.DCL**:可能是DCG自身的DCL定义...
为了能够创建 ASP.NET Web 应用程序,系统需要安装微软的 Internet 信息服务器 (IIS) ,如果使用的系统是 Windows 2000 或 Windows XP 系列,那它们直接就带有 IIS 。 在配置好开发环境后,下一步就是编写 ASP.NET ...
4. **ACS文件解析**:ACS(Agent Control Script)文件包含了定义角色外观和行为的信息。学习如何加载和使用ACS文件,如Merlin.acs,以创建具有特定外观和行为的角色。 5. **事件处理**:MSAgent支持事件驱动的编程...