亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

在C#中調用VBScript、javascript等腳本的實現代碼

2020-01-24 03:45:24
字體:
來源:轉載
供稿:網友
一.使用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 代碼,此窗口用于顯示對話框和其他用戶界面元素??勺x寫。
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
{
/// <summary>
/// JScript腳本語言
/// </summary>
JScript,
/// <summary>
/// VBscript腳本語言
/// </summary>
VBscript,
/// <summary>
/// javascript腳本語言
/// </summary>
javascript
}
/// <summary>
/// 腳本運行錯誤代理
/// </summary>
public delegate void RunErrorHandler();
/// <summary>
/// 腳本運行超時代理
/// </summary>
public delegate void RunTimeoutHandler();
/// <summary>
/// ScriptEngine類
/// </summary>
public class ScriptEngine
{
private ScriptControl msc;
//定義腳本運行錯誤事件
public event RunErrorHandler RunError;
//定義腳本運行超時事件
public event RunTimeoutHandler RunTimeout;
/// <summary>
///構造函數
/// </summary>
public ScriptEngine():this(ScriptLanguage.VBscript)
{
}
/// <summary>
/// 構造函數
/// </summary>
/// <param name="language">腳本類型</param>
public ScriptEngine(ScriptLanguage language)
{
this.msc = new ScriptControlClass();
this.msc.UseSafeSubset = true;
this.msc.Language = language.ToString();
((DScriptControlSource_Event)this.msc).Error += new DScriptControlSource_ErrorEventHandler(ScriptEngine_Error);
((DScriptControlSource_Event)this.msc).Timeout += new DScriptControlSource_TimeoutEventHandler(ScriptEngine_Timeout);
}
/// <summary>
/// 運行Eval方法
/// </summary>
/// <param name="expression">表達式</param>
/// <param name="codeBody">函數體</param>
/// <returns>返回值object</returns>
public object Eval(string expression,string codeBody)
{
msc.AddCode(codeBody);
return msc.Eval(expression);
}
/// <summary>
/// 運行Eval方法
/// </summary>
/// <param name="language">腳本語言</param>
/// <param name="expression">表達式</param>
/// <param name="codeBody">函數體</param>
/// <returns>返回值object</returns>
public object Eval(ScriptLanguage language,string expression,string codeBody)
{
if(this.Language != language)
this.Language = language;
return Eval(expression,codeBody);
}
/// <summary>
/// 運行Run方法
/// </summary>
/// <param name="mainFunctionName">入口函數名稱</param>
/// <param name="parameters">參數</param>
/// <param name="codeBody">函數體</param>
/// <returns>返回值object</returns>
public object Run(string mainFunctionName,object[] parameters,string codeBody)
{
this.msc.AddCode(codeBody);
return msc.Run(mainFunctionName,ref para
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品自拍视频| 日韩女优人人人人射在线视频| 美日韩精品免费视频| 久久成年人免费电影| 81精品国产乱码久久久久久| 国产精品久久久久久久久影视| 中日韩美女免费视频网站在线观看| 国产精品丝袜白浆摸在线| 久久精品国产99国产精品澳门| 亚洲国产又黄又爽女人高潮的| 亚洲一区久久久| 精品久久久久久| 欧美一区二三区| 亚洲自拍在线观看| 日韩在线播放视频| 成人午夜激情免费视频| 久久精品久久久久| 91精品在线一区| 精品久久久久久中文字幕大豆网| 亚洲欧美另类人妖| 国产精品福利在线观看| 国产亚洲激情在线| 久久久久久久久久久免费精品| 欧美一级淫片aaaaaaa视频| 欧美肥臀大乳一区二区免费视频| 成人免费xxxxx在线观看| 国产深夜精品福利| 日韩av在线导航| 国产美女高潮久久白浆| 午夜精品一区二区三区视频免费看| 亚洲a一级视频| www亚洲精品| 精品国模在线视频| 久久久亚洲福利精品午夜| 一区二区欧美久久| 精品福利在线观看| 一区二区三区美女xx视频| 欧美黄色性视频| 91丨九色丨国产在线| 亚洲老司机av| 最新国产精品拍自在线播放| 久久综合伊人77777尤物| 亚洲四色影视在线观看| 成人在线国产精品| 久久99国产精品自在自在app| 国产亚洲欧美aaaa| 欧美高清视频免费观看| 国产成人aa精品一区在线播放| 尤物九九久久国产精品的分类| 日韩有码在线观看| 亚洲直播在线一区| 日韩精品久久久久久久玫瑰园| 欧美在线精品免播放器视频| 亚洲精品免费一区二区三区| 国产精品毛片a∨一区二区三区|国| 久久青草精品视频免费观看| 日韩精品视频免费在线观看| 伊人久久久久久久久久| 97超级碰在线看视频免费在线看| 91亚洲精华国产精华| 欧美日韩一区二区免费在线观看| 欧美精品18videosex性欧美| 欧美日韩一区二区精品| 日本欧美一级片| 亚洲一区二区精品| 亚洲欧美中文日韩在线v日本| 久久久久久久香蕉网| 午夜精品国产精品大乳美女| 中文字幕亚洲欧美日韩2019| 日本一本a高清免费不卡| 少妇高潮 亚洲精品| 成人黄色片在线| 91精品在线播放| 欧美成人网在线| 欧美极品少妇与黑人| 日韩欧美国产成人| 国产成人在线一区二区| 亚洲国产黄色片| 国产精品欧美一区二区| 最新亚洲国产精品| 亚洲国产精品网站| 国产精品久久久久秋霞鲁丝| 91亚洲精品一区| 91高清视频免费| 欧美大荫蒂xxx| 亚洲精品国产综合区久久久久久久| 亚洲深夜福利网站| 色yeye香蕉凹凸一区二区av| 夜夜嗨av色一区二区不卡| 欧美激情视频一区二区三区不卡| 海角国产乱辈乱精品视频| 亚洲欧美成人一区二区在线电影| 国产精品看片资源| 国产成人在线一区二区| 欧美成年人视频| 亚洲精品一区中文字幕乱码| 美女少妇精品视频| 亚洲第一视频网站| 久久亚洲精品国产亚洲老地址| 2020国产精品视频| 宅男66日本亚洲欧美视频| 日韩视频免费观看| 最近2019年手机中文字幕| 丝袜情趣国产精品| 久久av在线看| 91精品国产99久久久久久| 亚洲在线第一页| xxxxxxxxx欧美| 激情成人中文字幕| 97视频色精品| 欧洲日韩成人av| 91精品免费久久久久久久久| 国产精品揄拍500视频| 91网站免费观看| 亚洲专区国产精品| 日本伊人精品一区二区三区介绍| 欧美一级片免费在线| 91日本视频在线| www.99久久热国产日韩欧美.com| 国产精品久久久久久久久久小说| 成人国产精品一区| 国模精品一区二区三区色天香| 精品久久久久久中文字幕一区奶水| 国产美女直播视频一区| 亚洲精品国产美女| 清纯唯美日韩制服另类| 亚洲在线免费观看| 国产精品无码专区在线观看| 久久久久久久久国产| 国产精品极品在线| 欧美人在线观看| 欧美另类交人妖| 日韩精品在线电影| 中文字幕日韩高清| 在线观看欧美视频| 欧美日韩aaaa| 欧美精品在线第一页| 亚洲国产天堂久久综合网| 国内精久久久久久久久久人| 国模gogo一区二区大胆私拍| 国产亚洲免费的视频看| 亚洲天堂第一页| 亚洲性av在线| 国产精品aaa| 日韩专区在线观看| 欧美精品日韩三级| 一区二区三区亚洲| 日韩人在线观看| 亚洲伊人成综合成人网| 福利一区视频在线观看| 久久黄色av网站| 欧美性videos高清精品| 在线看日韩av| 日韩成人在线视频观看| 国产精品久久久久久婷婷天堂| 亚洲免费电影在线观看| 国产欧美一区二区白浆黑人| 日日摸夜夜添一区| 日韩中文av在线| 成人福利在线视频| 全亚洲最色的网站在线观看| 久久影院资源网| 国产成人亚洲综合91精品| 91av视频在线观看|