ScriptControl控件執(zhí)行自定義VBS腳本示例分析
ScriptControl控件-msscript.ocx msscript.oca
'AllowUI:可讀寫(xiě),布爾值,檢測(cè)是否允許運(yùn)行用戶的接口元素.如果為False,則諸如消息框之類的界面元素不可見(jiàn).
'CodeObject: 返回宿主被調(diào)用的特定的公用成員對(duì)象.只讀.
'Modules:只讀.返回宿主提供給腳本的組件庫(kù)模塊.COM組件通常都是以對(duì)象收集的形式向用戶提供可以留給用戶二次開(kāi)發(fā)的對(duì)象集合,每一個(gè)收集即一個(gè)Modules(模塊).
'Language:設(shè)置或獲取腳本引擎解釋的語(yǔ)言,例如:VBScript.JScript.
'Name:返回模塊.過(guò)程.或者對(duì)象的名字,只讀屬性.
'Procedures:返回模塊中定義的過(guò)程,只讀.
'SitehWnd:窗口句柄,如果本控件以ActiveX控件創(chuàng)建,則此屬性為控件的容器;如果是以自動(dòng)化對(duì)象創(chuàng)建,則為0,即桌面.此屬性可讀寫(xiě).
'State:設(shè)置或返回控件的狀態(tài),如果為0,控件只執(zhí)行語(yǔ)句但不轉(zhuǎn)發(fā)事件,為1則為加入的本控件接受的對(duì)象轉(zhuǎn)發(fā)事件.
'Timeout:設(shè)置或返回控件的相應(yīng)腳本的超時(shí)值.當(dāng)超時(shí)值到達(dá)時(shí),將引發(fā)Timeout事件.也可設(shè)為-1,表示無(wú)超時(shí)設(shè)定.
'UseSafeSubset: 設(shè)置或返回宿主程序是否關(guān)心安全.宿主程序的安全級(jí)別可以從此屬性設(shè)置.
'Error:錯(cuò)誤對(duì)象,發(fā)生錯(cuò)誤時(shí),此屬性返回一個(gè)錯(cuò)誤對(duì)象.
'AddCode :往一個(gè)模塊加入一些代碼.格式為:AddCode code,可以調(diào)用多次.
'AddObject:向一個(gè)模塊加入一個(gè)對(duì)象,格式:ScriptControl.AddObject(name, object[,addMembers]),name為欲加入的對(duì)象名字,Object為實(shí)際的對(duì)象,addMembers為可選指示此對(duì)象是否為全局對(duì)象,False為局部對(duì)象.只有往本對(duì)象中加入對(duì)象后才能在腳本中使用
'Eval:求值表達(dá)式.格式為object.eval_r(expression) .
'ExecuteStatement: 解釋并執(zhí)行腳本語(yǔ)句.格式: object.ExecuteStatement statement.
'Reset: 丟棄所有的對(duì)象和代碼.State屬性將為0.
'Run:運(yùn)行一個(gè)指定的過(guò)程.格式:object.Run(procedureName,parameters()),procedureName為要運(yùn)行的過(guò)程名,parameters()為參數(shù)
'僅有兩個(gè)事件:error 和TimeOut.前者可以用于錯(cuò)誤捕獲,后者在腳本得不到響應(yīng)時(shí)發(fā)生.
Private Sub Command1_Click()
Dim strFun As String
Dim a, b As Long
a = 2
b = 3
strFun = "function Add(a,b)" & vbCrLf & "Add=a+b" & vbCrLf & "End Function" & vbCrLf
ScriptControl1.Modules.Add "MyCode"
ScriptControl1.Modules.Item(1).AddCode strFun
MsgBox ScriptControl1.Run("Add", a, b)
End Sub
Private Sub Command2_Click()
Dim CodeStr As String
CodeStr = "msgbox 2+3" & vbCrLf
ScriptControl1.ExecuteStatement CodeStr
End Sub
Private Sub Command3_Click() //運(yùn)行print 運(yùn)算表達(dá)式
Dim CodeStr As String
CodeStr = Text1.Text
CodeStr = Mid(CodeStr, 6)
MsgBox ScriptControl1.Eval(CodeStr)
End Sub
相關(guān)文章
Unity游戲開(kāi)發(fā)之射擊小游戲的實(shí)現(xiàn)
本篇文章為大家?guī)?lái)一個(gè)橫版2D射擊小游戲,游戲制作超級(jí)簡(jiǎn)單,玩法一學(xué)就會(huì)。文中的示例代碼講解詳細(xì),快跟隨小編一起動(dòng)手試一試2022-03-03vista和win7在windows服務(wù)中交互桌面權(quán)限問(wèn)題解決方法:穿透Session 0 隔離
服務(wù)(Service)對(duì)于大家來(lái)說(shuō)一定不會(huì)陌生,它是Windows 操作系統(tǒng)重要的組成部分。我們可以把服務(wù)想像成一種特殊的應(yīng)用程序,它隨系統(tǒng)的“開(kāi)啟~關(guān)閉”而“開(kāi)始~停止”其工作內(nèi)容,在這期間無(wú)需任何用戶參與2016-04-04c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)
c# StringBuilder.Replace 方法 (Char, Char, Int32, Int32)...2007-08-08關(guān)于ASP網(wǎng)頁(yè)無(wú)法打開(kāi)的解決方案
asp網(wǎng)頁(yè)實(shí)際上就是動(dòng)態(tài)網(wǎng)頁(yè),是在服務(wù)端執(zhí)行和解析的。有時(shí)也很奇怪,經(jīng)常遇到asp網(wǎng)頁(yè)無(wú)法打開(kāi)的情況,下面小編給大家整理些關(guān)于asp網(wǎng)頁(yè)無(wú)法打開(kāi)的解決方案,需要的朋友可以參考下2015-08-08Unity3d 使用Gizmos畫(huà)一個(gè)圓圈
這篇文章主要介紹了Unity3d 使用Gizmos畫(huà)一個(gè)圓圈的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04C#實(shí)現(xiàn)對(duì)用戶輸入數(shù)據(jù)進(jìn)行校驗(yàn)的類實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)對(duì)用戶輸入數(shù)據(jù)進(jìn)行校驗(yàn)的類,實(shí)例分析了C#針對(duì)各種用戶輸入數(shù)據(jù)的常用校驗(yàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03C#實(shí)現(xiàn)調(diào)用本機(jī)攝像頭實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)調(diào)用本機(jī)攝像頭的方法,可以實(shí)現(xiàn)調(diào)用本機(jī)攝像頭進(jìn)行拍照,具有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下2014-08-08