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

首頁 > 編程 > VBScript > 正文

MSScriptControl.ScriptControl組件的用法實例

2020-06-26 18:40:13
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了MSScriptControl.ScriptControl組件的用法實例,需要的朋友可以參考下
 

Microsoft(R) Script 控件使用戶可以創建運行任何 ActiveX(R) scripting 引擎,例如 Microsoft(R) Visual Basic (R) Scripting Edition 或Microsoft(R) JScript(TM) 的應用程序。用戶可以將任何 Automation 對象的對象模型添加到 Script 控件中,這樣該對象的方法和屬性就可以為 scripting 引擎所使用。通過將某個應用程序的對象模型和某個scripting 引擎加以綜合,用戶就可以創建一個結合了兩方面優點的 scripting 應用程序。應用程序不但具有 scripting 語言的簡單化特點,而且綜合了一種更高級、具有完整特性的專業應用程序的對象、方法,以及屬性。

創建 Script 控件的實例

Microsoft Script 控件可作為一個控件或者作為一個獨立的 Automation 對象創建出來。該特性可以使得用任何語言書寫的應用程序都可以用 ScriptControl 宿主任何兼容的 scripting 語言。

下面的示例可使用任意格式。請注意變量 sc 并未聲明為類型 ScriptControl,因為該控件不是,也不必要是工程中所引用的。只要 Script 控件出現并進行注冊,下面的代碼就可正常工作:

 

復制代碼代碼如下:

Private Sub Command1_Click() 
Dim sc 
Dim strProgram As String 
strProgram = "Sub Main" & vbCrLf & _ 
"MsgBox ""Hello World""" & vbCrLf & _ 
"End Sub" 
Set sc = CreateObject("ScriptControl") 
sc.language = "VBScript" 
sc.addcode strProgram 
sc.run "Main" 
End Sub 

 

如果用戶在自己的工程中的引用中對 Script 控件進行顯式引用,那么用戶就可以用下面的代碼創建 Script 控件的一個

實例: 

復制代碼代碼如下:

Dim sc As ScriptControl 

 

顯示用戶接口元素 AllowUI 屬性決定了 scripting 引擎是否可以顯示用戶接口元素。這可以應用于 Script 控件本身,例如顯示超時消息。

這也可以應用于使用 ActiveX scripting 接口的 scripting 引擎。例如,下面的代碼將在試圖顯示 Hello World 消息框時產生一個錯誤: 

復制代碼代碼如下:

ScriptControl1.AllowUI = False 
Dim strX As String 
strX = "Sub Hello" & vbCrLf & _ 
"MsgBox ""Hello World""" & vbCrLf & _ 
"End Sub" 
ScriptControl1.AddCode strX 
ScriptControl1.Run "Hello" ' 沒有允許的 UI! 

 

創建 Scripting 代碼

Microsoft Script 控件使用戶可以創建一個運行 scripting 語言,例如 VBScript 或 JScript 的應用程序。例如,假設用戶在窗體上有一個按鈕,用戶希望在按下該按鈕時運行某些 VBScript 代碼。該按鈕稱為 Run NameMe,而用戶希望scripting 代碼運行一個叫 NameMe 的過程。意圖是當用戶單擊 Run NameMe 按鈕時,VBScript scripting 引擎執行 NameMe 過程。

這個 Run NameMe 按鈕使用 Script Control 的 Run 方法來執行腳本。下面就是應當出現在 Run NameMe 按鈕的 Click 事件中的代碼: 

復制代碼代碼如下:

' Script Control 的名字是 ScriptControl1。 
Private Sub RunNameMe_Click() 
ScriptControl1.Run "NameMe" 
End Sub

 

為了創建該腳本所需要代碼的其余部分,請選擇一種 scripting 語言,并將代碼添加到某個過程中,然后運行該過程。

選擇一種Scripting 語言

第一步是為 Script Control 配置正確的 scripting 語言。當在某頁上作為控件創建 Script Control 時,Language 屬性就被自動初始化為 "VBScript"。當作為一個 Automation 對象來創建 Script Control 時,則 Language 屬性留作未初 
始化的狀態,而必須由代碼作者對其進行設置。

若要將 Language 屬性設置為 JScript,可使用 Properties 窗口。用戶也可以在代碼中使用 Language 屬性,如下所 
示: 

復制代碼代碼如下:

ScriptControl1.Language = "JScript" 

其他 scripting 語言,例如 PERL 和 REXX,都不是由 Microsoft 所提供的,也可以為 Script 控件所用。

 

將代碼添加到某個過程中

在用戶運行 NameMe 過程之前,可使用 AddCode 方法將完整的過程添加到 Script 控件中。如果用戶試圖將一個不完整的過程(一個沒有 End Sub 或者 End Function 的過程)添加進去,則將會出錯。下面的代碼將過程代碼添加到 Script 
Control 中: 

復制代碼代碼如下:

' 當 ScriptRun 應用程序加載時,添加下面的代碼 
' 將 NameMe 過程添加到 Control 中。 
Private Sub Form_Load() 
Dim strCode As String 
strCode = "Sub NameMe()" & vbCrLf & _ 
" Dim strName As String" & vbCrLf & _ 
" strName = InputBox(""Name?"")" & vbCrLf & _ 
" MsgBox ""Your name is "" & strName" & vbcrLf & _ 
"End Sub" 
ScriptControl1.AddCode strCode 
End Sub

 

另外,用戶也可以從某個 TextBox 控件添加過程代碼: 

復制代碼代碼如下:

Private Sub Form_Load() 
' 該代碼包含在名為 frmScript 的窗體上 
' 名為 txtScript 的 Textbox中。 
ScriptControl1.AddCode frmScript.txtScript.Text 
End Sub

 

用戶可以將參數添加到某個過程或者函數中。 

復制代碼代碼如下:

Private Sub EvalFunc() 
' 創建函數。 
Dim strFunction As String 
strFunction = _ 
"Function ReturnThis(x, y)" & vbCrLf & _ 
" ReturnThis = x * y" & vbCrLf & _ 
"End Function" 
' 添加代碼,然后運行該函數。 
ScriptControl1.AddCode strFunction 
MsgBox ScriptControl1.Run("ReturnThis", 3, 25) 
End Sub

 

運行過程

Run 方法運行任何已被添加到 Script 控件中的完整過程。下面的代碼段運行三個已定義過程: 

復制代碼代碼如下:

ScriptControl1.Run "FindName" 
ScriptControl1.Run "AddName" 
ScriptControl1.Run "Quit" 

 

執行 Scripting 語句,并計算結果,用戶可以用 ExecuteStatement 方法執行一條 scripting 語句。用戶可以用 eval 方法計算某個表達式值。在下面的示例 
中,用 ExecuteStatement 方法將值 100 賦給變量 x。下面的兩行用 eval 方法來測試語句 x = 100 和 x = 100/2。第二行返回 True;而第三行則返回 False。

 

復制代碼代碼如下:
Private Sub TryThis() 
ScriptControl1.ExecuteStatement "x = 100" 
MsgBox ScriptControl1.Eval("x = 100") ' 返回 True 
MsgBox ScriptControl1.Eval("x = 100/2") ' 返回 False 
End Sub

 

使用 Error 屬性

Script 控件錯誤有兩個可能來源:Script 控件自身,或者該控件試圖運行的 script。為了對 scripting 代碼進行調試,可使用 Error 屬性,該屬性返回對 Error 對象的引用。利用 Error 對象,Script 控件可以返回錯誤數目和對它的 
描述,以及錯誤在 script 中出現的行號。

運行下面的代碼,查看 Script 控件發現錯誤的一個示例: 

復制代碼代碼如下:

Private Sub MyError() 
' 下面的代碼被零除導致 
' 一個錯誤。 
Dim strCode As String 
strCode = _ 
"Sub DivideByZero()" & vbCrLf & _ 
"Dim prime" & vbCrLf & _ 
"prime = 3" & vbCrLf & _ 
"MsgBox prime/0" & vbCrLf & _ 
"End Sub" 
On Error GoTo scError 
With ScriptControl1 
.AddCode strCode 
.Run "DivideByZero" 
End With 
Exit Sub 
scError: 
' 使用 Error 對象向用戶通告 
' 錯誤,以及出錯行。 
Debug.Print ScriptControl1.Error.Number & _ 
":" & ScriptControl1.Error.Description & _ 
" in line " & ScriptControl1.Error.Line 
Exit Sub 
End Sub

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚州精品天堂中文字幕| 中文字幕一区电影| 亚洲日本aⅴ片在线观看香蕉| 日韩av免费在线看| 韩日精品中文字幕| 4438全国亚洲精品在线观看视频| 亚洲图片欧美午夜| 精品毛片三在线观看| 亚洲午夜色婷婷在线| 亚洲精品成人av| 97香蕉超级碰碰久久免费软件| 国产成人+综合亚洲+天堂| 2018中文字幕一区二区三区| 日韩av免费在线播放| 亚洲欧洲激情在线| 国产精品pans私拍| 欧美电影电视剧在线观看| 欧美在线不卡区| 原创国产精品91| 91精品免费视频| 激情久久av一区av二区av三区| 亚洲成avwww人| 亚洲日韩中文字幕| 欧美电影在线观看高清| 国产在线高清精品| 国内精品久久久| 日韩av在线资源| 成人乱色短篇合集| 97超级碰碰碰| 亚洲精品在线看| 亚洲另类图片色| 亚洲欧洲国产精品| 国产婷婷97碰碰久久人人蜜臀| 精品无人区乱码1区2区3区在线| 日韩高清av一区二区三区| 亚洲精品视频免费在线观看| 91av在线播放视频| 亚洲免费av片| 亚洲欧美日韩视频一区| 久久久久中文字幕2018| 欧美高清视频在线播放| 亚洲爱爱爱爱爱| 亚洲成年人影院在线| 亚洲一区亚洲二区亚洲三区| 国产69久久精品成人看| 亚洲18私人小影院| 亚洲高清在线观看| 欧美大片免费看| 日产精品99久久久久久| 久久久精品电影| 国产午夜精品视频免费不卡69堂| 久久久久久一区二区三区| 日韩性xxxx爱| 国产91精品网站| 亚洲女性裸体视频| 亚洲专区在线视频| 欧美性生交xxxxxdddd| 欧美性20hd另类| 亚洲男人天堂视频| 欧美日韩国产专区| 日本久久久a级免费| 九九热在线精品视频| 国产日韩一区在线| 国产精品专区h在线观看| 国内精品久久久久久久| 亚洲视频在线免费观看| 国产精品99久久久久久久久| 色综合老司机第九色激情| 成人精品久久久| 国产成人小视频在线观看| 久久99国产精品自在自在app| 91色视频在线导航| 午夜精品久久久久久99热| 日韩中文字幕网| 国产精品老牛影院在线观看| 国产精品久久久av久久久| 国产精品第三页| 国产精品自产拍在线观看| 亚洲男人av在线| 久久久国产视频91| 一区二区亚洲精品国产| 亚洲第五色综合网| 亚洲第一精品久久忘忧草社区| 91国产精品电影| 日韩成人激情在线| 欧美一区二区三区精品电影| 92国产精品视频| 91精品国产高清自在线| 日韩理论片久久| 成人国产精品久久久久久亚洲| 久久精品国产91精品亚洲| 久久福利网址导航| 亚洲福利在线观看| 亚洲综合中文字幕在线| 欧美激情a∨在线视频播放| 欧美最猛性xxxxx亚洲精品| 亚洲国产成人精品久久久国产成人一区| 精品亚洲精品福利线在观看| 国产精品久久久久高潮| 久久久精品国产亚洲| www.久久撸.com| 欧美插天视频在线播放| 久久久久国色av免费观看性色| 97超碰蝌蚪网人人做人人爽| 色噜噜狠狠狠综合曰曰曰88av| 国产午夜精品美女视频明星a级| 欧美日韩国产成人| 色综合色综合久久综合频道88| 国产精品久久久久久亚洲影视| 欧美一级片在线播放| 中文字幕亚洲欧美日韩高清| 91国产视频在线| 日韩一区二区久久久| 日韩中文在线观看| 视频一区视频二区国产精品| 欧美激情xxxx性bbbb| 国产一区二区在线免费视频| 91超碰caoporn97人人| 国产亚洲欧美日韩一区二区| 97香蕉超级碰碰久久免费的优势| 日韩视频免费大全中文字幕| 国产成人精品在线| 在线日韩av观看| 日韩少妇与小伙激情| 自拍偷拍亚洲欧美| 欧美精品一区二区三区国产精品| 免费成人高清视频| 日韩亚洲欧美成人| 91中文字幕在线| 成人精品久久av网站| 久久久久久久电影一区| 日韩电影免费观看中文字幕| 疯狂做受xxxx欧美肥白少妇| 久久成人在线视频| 亚洲美女av在线播放| 毛片精品免费在线观看| 日本伊人精品一区二区三区介绍| 国产精品久久久久久久久男| 欧美一区二区三区免费视| 久久影院中文字幕| 色偷偷噜噜噜亚洲男人| 中文字幕日韩视频| 国产亚洲视频在线观看| 亚洲欧美激情在线视频| 97香蕉超级碰碰久久免费的优势| 91久久久久久久久久久久久| 91视频国产精品| 97色在线视频| 国产精品爽爽爽爽爽爽在线观看| 国产一区二区久久精品| 日本精品久久电影| 亚洲人成网7777777国产| 亚洲精品中文字| 亚洲另类激情图| 亚洲欧美视频在线| 粉嫩老牛aⅴ一区二区三区| 亚洲精品视频网上网址在线观看| 亚洲天堂男人天堂女人天堂| 欧美性猛交xxxxx水多| 超在线视频97| 亚洲自拍另类欧美丝袜| 91av在线国产| 日韩女优在线播放| 久99久在线视频|