麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

C#利用ScriptControl動態執行JS和VBS腳本

2020-01-24 03:29:30
字體:
來源:轉載
供稿:網友
ScriptControl接口

屬性名稱

類型

備注

AllowUI

BOOL

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

CodeObject

Object

腳本暴露給宿主調用的對象。只讀。

Modules

Modules

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

Language

String

設置或獲取腳本引擎解釋的語言,例如:VBScriptJScript

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

執行過程超時時發生


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

例子:

復制代碼 代碼如下:

using MSScriptControl;
namespace zz
{
    /// <summary>
    /// scriptengine類
    /// </summary>
    public class ScriptEngine
    {
        private ScriptControl msc;
        /// <summary>
        /// 構造函數
        /// </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>
        /// 運行eval方法
        /// </summary>
        /// <param name="expression">表達式</param>
        /// <returns>返回值object</returns>
        public object eval(string expression)
        {
            return msc.Eval(expression);
        }
        /// <summary>
        /// 運行run方法
        /// </summary>
        /// <param name="mainfunctionname">入口函數名稱</param>
        /// <param name="parameters">參數</param>
        /// <returns>返回值object</returns>
        public object Run(string mainFunctionName, object[] parameters)
        {
            return msc.Run(mainFunctionName, ref parameters);
        }
        /// <summary>
        /// 加入要執行的腳本
        /// </summary>
        /// <param name="Code"></param>
        public void AddCode(string Code)
        {
            msc.AddCode(Code);
        }
        /// <summary>
        /// 解析并運行
        /// </summary>
        /// <param name="Code">代碼</param>
        public void ExecuteStatement(string Code)
        {
            msc.ExecuteStatement(Code);
        }
        /// <summary>
        /// 放棄所有已經添加到 scriptcontrol 中的 script 代碼和對象
        /// </summary>
        public void Reset()
        {
            msc.Reset();
        }
        /// <summary>
        /// 獲取或設置腳本語言
        /// </summary>
        public string Language
        {
            get { return msc.Language; }
            set { msc.Language = value; }
        }
        /// <summary>
        /// 獲取或設置腳本執行時間,單位為毫秒
        /// </summary>
        public int Timeout
        {
            get { return ((IScriptControl)msc).Timeout; }
            set { ((IScriptControl)msc).Timeout = value; }
        }
        /// <summary>
        /// 設置是否顯示用戶界面元素
        /// </summary>
        public bool AllowUI
        {
            get { return msc.AllowUI; }
            set { msc.AllowUI = value; }
        }
        /// <summary>
        /// 宿主應用程序是否有保密性要求
        /// </summary>
        public bool UseSafeSubset
        {
            get { return msc.UseSafeSubset; }
            set { msc.UseSafeSubset = true; }
        }
        private void ScriptEngine_Error()
        {
            //錯誤事件
        }
        private void ScriptEngine_Timeout()
        {
            //超時事件
        }
    }
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕一区二区三区久久 | 性欧美xxxx极品摘花 | 黄污网址 | 国产va在线观看免费 | 久久艹一区 | 欧美性受xxxx白人性爽 | 成人在线观看地址 | 91精品国产一区二区三区四区在线 | av老司机久久 | 黄色网址在线播放 | 女人一级一级毛片 | 国产精品美女久久久免费 | 4p一女两男做爰在线观看 | 欧美日本中文字幕 | 欧美日韩视频在线播放 | 日韩1区| 色爱99| 国产成人羞羞视频在线 | a黄网站 | 黄色小视频免费在线观看 | 美女羞羞视频在线观看 | 成人 精品 | 黄网站免费在线看 | 国产人成精品一区二区三 | 一级电影免费在线观看 | 久久精品国产99久久久古代 | 午夜精品老牛av一区二区三区 | 亚洲午夜精品视频 | 欧美成年人视频在线观看 | 成人福利视频在线观看 | 久草手机在线视频 | 91欧美视频| 国产精品一区二区三区在线 | 国产一区二区三区撒尿在线 | 国产精彩视频在线 | 一级黄色片在线看 | 97青青草视频 | 91精品国产成人 | 午夜视频在线 | 日日草夜夜草 | 羞羞视频入口 |