欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#利用ScriptControl動(dòng)態(tài)執(zhí)行JS和VBS腳本

 更新時(shí)間:2013年04月07日 10:31:31   作者:  
C#中利用ScriptControl動(dòng)態(tài)執(zhí)行JS和VBS腳本的實(shí)現(xiàn)方法,需要的朋友可以參考下
ScriptControl接口

屬性名稱

類型

備注

AllowUI

BOOL

檢測是否允許運(yùn)行用戶的接口元素。如果為False,則諸如消息框之類的界面元素不可見。

CodeObject

Object

腳本暴露給宿主調(diào)用的對(duì)象。只讀。

Modules

Modules

宿主提供給腳本的組件庫模塊。只讀。(COM組件通常都是以對(duì)象收集的形式向用戶提供可以留給用戶二次開發(fā)的對(duì)象集合,每一個(gè)收集即一個(gè)Modules

Language

String

設(shè)置或獲取腳本引擎解釋的語言,例如:VBScript、JScript。

Name

String

腳本引擎的名稱。只讀。

Procedures

Procedures

返回模塊中定義的過程的集合

SitehWnd

HWND

在腳本中顯示UI的父窗口句柄

State

Enum

設(shè)置或返回控件的狀態(tài),如果為0,控件只執(zhí)行語句但不轉(zhuǎn)發(fā)事件,為1則為加入的本控件接受的對(duì)象轉(zhuǎn)發(fā)事件。

Timeout

Long

控件的執(zhí)行腳本的超時(shí)值,-1表示不超時(shí)

UseSafeSubset

BOOL

設(shè)置或返回宿主程序是否關(guān)心安全。宿主程序的安全級(jí)別可以從此屬性設(shè)置

Error

Error

錯(cuò)誤對(duì)象,發(fā)生錯(cuò)誤時(shí),此屬性返回一個(gè)錯(cuò)誤對(duì)象

方法名稱

參數(shù)

功能

AddCode

Code As String

往腳本引擎中加入要執(zhí)行的腳本

AddObject

Name As String, Object As Object, [AddMembers As Boolean = False]

往腳本引擎加入一個(gè)對(duì)象,以便在腳本中可以使用該對(duì)象提供的方法等。

Eval

Expression As String

表達(dá)式求值

ExecuteStatement

Statement As String

解釋并執(zhí)行腳本語句

Reset

丟棄所有的對(duì)象和代碼,將State屬性置0。

Run

ProcedureName As String, ParamArray Parameters() As Variant

運(yùn)行一個(gè)指定的過程

事件名稱

功能

Error

有錯(cuò)誤發(fā)生時(shí)激發(fā)該事件

TimeOut

執(zhí)行過程超時(shí)時(shí)發(fā)生


/* 添加COM引用:
Library MSScriptControl
C:\WINDOWS\system32\msscript.ocx
Microsoft Script Control 1.0
*/

例子:

復(fù)制代碼 代碼如下:

using MSScriptControl;
namespace zz
{
    /// <summary>
    /// scriptengine類
    /// </summary>
    public class ScriptEngine
    {
        private ScriptControl msc;
        /// <summary>
        /// 構(gòu)造函數(shù)
        /// </summary>
        /// <param name="language">腳本類型,VBscript\JavaScript</param>
        public ScriptEngine(string language)
        {
            msc = new ScriptControlClass();
            msc.UseSafeSubset = true;
            msc.Language = language;
            ((DScriptControlSource_Event)msc).Error += new DScriptControlSource_ErrorEventHandler(ScriptEngine_Error);
            ((DScriptControlSource_Event)msc).Timeout += new DScriptControlSource_TimeoutEventHandler(ScriptEngine_Timeout);
        }
        /// <summary>
        /// 運(yùn)行eval方法
        /// </summary>
        /// <param name="expression">表達(dá)式</param>
        /// <returns>返回值object</returns>
        public object eval(string expression)
        {
            return msc.Eval(expression);
        }
        /// <summary>
        /// 運(yùn)行run方法
        /// </summary>
        /// <param name="mainfunctionname">入口函數(shù)名稱</param>
        /// <param name="parameters">參數(shù)</param>
        /// <returns>返回值object</returns>
        public object Run(string mainFunctionName, object[] parameters)
        {
            return msc.Run(mainFunctionName, ref parameters);
        }
        /// <summary>
        /// 加入要執(zhí)行的腳本
        /// </summary>
        /// <param name="Code"></param>
        public void AddCode(string Code)
        {
            msc.AddCode(Code);
        }
        /// <summary>
        /// 解析并運(yùn)行
        /// </summary>
        /// <param name="Code">代碼</param>
        public void ExecuteStatement(string Code)
        {
            msc.ExecuteStatement(Code);
        }
        /// <summary>
        /// 放棄所有已經(jīng)添加到 scriptcontrol 中的 script 代碼和對(duì)象
        /// </summary>
        public void Reset()
        {
            msc.Reset();
        }
        /// <summary>
        /// 獲取或設(shè)置腳本語言
        /// </summary>
        public string Language
        {
            get { return msc.Language; }
            set { msc.Language = value; }
        }
        /// <summary>
        /// 獲取或設(shè)置腳本執(zhí)行時(shí)間,單位為毫秒
        /// </summary>
        public int Timeout
        {
            get { return ((IScriptControl)msc).Timeout; }
            set { ((IScriptControl)msc).Timeout = value; }
        }
        /// <summary>
        /// 設(shè)置是否顯示用戶界面元素
        /// </summary>
        public bool AllowUI
        {
            get { return msc.AllowUI; }
            set { msc.AllowUI = value; }
        }
        /// <summary>
        /// 宿主應(yīng)用程序是否有保密性要求
        /// </summary>
        public bool UseSafeSubset
        {
            get { return msc.UseSafeSubset; }
            set { msc.UseSafeSubset = true; }
        }
        private void ScriptEngine_Error()
        {
            //錯(cuò)誤事件
        }
        private void ScriptEngine_Timeout()
        {
            //超時(shí)事件
        }
    }
}

相關(guān)文章

最新評(píng)論