VBS中CreateObject和WScript.CreateObject的區(qū)別介紹
更新時間:2013年05月08日 22:00:51 作者:
很多VBS新手都很困惑CreateObject和WScript.CreateObject有什么區(qū)別,為什么一些代碼中用CreateObject,而另一些卻用WScript.CreateObject
CreateObject和WScript.CreateObject的區(qū)別一:
CreateObject是VBS的內(nèi)置函數(shù),屬于語言的一部分;而WScript.CreateObject是Windows腳本宿主(wscript.exe和cscript.exe)提供的WScript對象的方法。類似于批處理中內(nèi)部命令和外部命令的關(guān)系。在VBS中,CreateObject總是可用的,而WScript.CreateObject只有在宿主為wscript.exe和cscript.exe的情況下才可以使用,在WMI、QTP、SecureCRT、EmEditor等其他宿主環(huán)境是無法使用的。
CreateObject和WScript.CreateObject的區(qū)別二:
如果只用第一個參數(shù),那么CreateObject和WScript.CreateObject幾乎是相同的;但是如果要用到第二個參數(shù),那么兩者就完全不同了。CreateObject的第二個參數(shù)用來通過DCOM在遠程服務(wù)器上創(chuàng)建對象;而WScript.CreateObject的第二個參數(shù)用來創(chuàng)建本地對象并響應(yīng)事件。
一個響應(yīng)事件的簡單例子:
Dim IE
Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_")
IE.Visible = True
IE.Navigate "http://m.fzitv.net"
Do
WScript.Sleep 1000
Loop
Sub IE_OnQuit()
MsgBox "正在關(guān)閉Demon's Blog"
WScript.Quit
End Sub
CreateObject和WScript.CreateObject的區(qū)別三:
因為CreateObject是VBS的內(nèi)置函數(shù),不需要通過COM來調(diào)用,所以CreateObject比WScript.CreateObject要稍微快一點點(雖然幾乎可以忽略不計):
t = Timer
For i = 1 To 100000
Set WshShell = WScript.CreateObject("Wscript.Shell")
Next
WScript.Echo Timer - t
'By Demon
t = Timer
For i = 1 To 100000
Set WshShell = CreateObject("Wscript.Shell")
Next
WScript.Echo Timer - t
Demon的建議:盡量使用CreateObject函數(shù),除非你需要響應(yīng)事件。這樣至少有三個好處:可移植性更好、速度更快、代碼更短。
作者: Demon
鏈接: http://demon.tw/programming/vbs-createobject-wscript-createobject.html
CreateObject是VBS的內(nèi)置函數(shù),屬于語言的一部分;而WScript.CreateObject是Windows腳本宿主(wscript.exe和cscript.exe)提供的WScript對象的方法。類似于批處理中內(nèi)部命令和外部命令的關(guān)系。在VBS中,CreateObject總是可用的,而WScript.CreateObject只有在宿主為wscript.exe和cscript.exe的情況下才可以使用,在WMI、QTP、SecureCRT、EmEditor等其他宿主環(huán)境是無法使用的。
CreateObject和WScript.CreateObject的區(qū)別二:
如果只用第一個參數(shù),那么CreateObject和WScript.CreateObject幾乎是相同的;但是如果要用到第二個參數(shù),那么兩者就完全不同了。CreateObject的第二個參數(shù)用來通過DCOM在遠程服務(wù)器上創(chuàng)建對象;而WScript.CreateObject的第二個參數(shù)用來創(chuàng)建本地對象并響應(yīng)事件。
一個響應(yīng)事件的簡單例子:
復(fù)制代碼 代碼如下:
Dim IE
Set IE = WScript.CreateObject("InternetExplorer.Application", "IE_")
IE.Visible = True
IE.Navigate "http://m.fzitv.net"
Do
WScript.Sleep 1000
Loop
Sub IE_OnQuit()
MsgBox "正在關(guān)閉Demon's Blog"
WScript.Quit
End Sub
CreateObject和WScript.CreateObject的區(qū)別三:
因為CreateObject是VBS的內(nèi)置函數(shù),不需要通過COM來調(diào)用,所以CreateObject比WScript.CreateObject要稍微快一點點(雖然幾乎可以忽略不計):
復(fù)制代碼 代碼如下:
t = Timer
For i = 1 To 100000
Set WshShell = WScript.CreateObject("Wscript.Shell")
Next
WScript.Echo Timer - t
'By Demon
t = Timer
For i = 1 To 100000
Set WshShell = CreateObject("Wscript.Shell")
Next
WScript.Echo Timer - t
Demon的建議:盡量使用CreateObject函數(shù),除非你需要響應(yīng)事件。這樣至少有三個好處:可移植性更好、速度更快、代碼更短。
作者: Demon
鏈接: http://demon.tw/programming/vbs-createobject-wscript-createobject.html
相關(guān)文章
把任意文件轉(zhuǎn)成vbs文件的file2vbs的vbs代碼
文章作者:xiaolu [BST] 信息來源:邪惡八進制信息安全團隊(www.eviloctal.com) 這個不是exe2vbs 所有類型的文件都可以轉(zhuǎn)化的 不過限于string的大小 文件不能太大 我測試過3m的文件是可以的2008-05-05
VBS中用CDO.Message發(fā)送郵件的實現(xiàn)代碼
曾經(jīng)在編寫VBS版U盤小偷程序的時候Google過怎么用VBS發(fā)送E-Mail,不知道為什么當時Google不到,可能是眼花了吧。2011-01-01

