首先,要有一个可以通过代码访问的应用程序,两种方式,一种是程序提供应用接口,要么是API,要么是COM接口,另一种,能够获得程序全部的源代码。
以上条件具备后,接下来,比较专业一点的方式,建立一个脚本编辑器程序,一般用一个单文档的应用就行,View类里放一个RichEditCtrl或者第三方的脚本控件,如Scintilla等,主要是为了编辑脚本方便以及提供一个美观的界面,让脚本程序员用着舒服。建立完编辑程序之后,在其中加入编译及运行操作按钮,如果能够加上调试按钮并实现的话,最好不过了。
这些架子搭完后,就要选择脚本引擎,一般我们不需要自己去写引擎,有几种优秀而且容易获得的引擎可供选择。比如微软的Active Scripting,谷歌开发的V8引擎等。V8引擎用于javascript脚本,Active Scripting分为VBScript和JScript,如果仅做javascript脚本,那么选择V8,如果要做VB脚本的话,那就选择微软。
这里选择Active Scripting。为建立好的脚本编辑器程序添加一个脚本操作器,这个脚本操作器就是一个Atl简单对象,可以实现加载脚本、运行脚本、停止脚本三种操作。这三种操作都是自己定义的,然后别的程序可以调用的,而且调用起来很方便。其中运行脚本这个操作就要使用到Active Scripting技术了。要实现运行脚本功能,得在脚本操作器的要继承的类中添加CObject类、IActiveScriptSite接口和IActiveScriptSiteWindow接口。这三项是最基本的,如果要实现调试功能的话,还要加一些其它的接口。添加CObject类是因为脚本操作器的MapNamedItems要设置为类本身,所以操作器要成为CObject的子类,ManNamedItems是一个CMapStringToOb类,它的项必须要设置为CObject