文章編號: 279164 - 上次校閱: 2005年5月25日 - 版次: 4.0

某些 WScript 方法和屬性不可以存取 Visual Basic 中

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

結論

WScript 方法和屬性無法建立一個 Visual Basic 物件的內容中,因為它們是 Windows 指令碼主機 (WSH) 物件模型的一部份,而且必須裝載在只能執行 WSH 指令碼中的 WScript 物件中。

其他相關資訊

WScript 物件通常是與 Automation 物件中如 WScript.Shell 和 WScript.Network 的 WSH 混淆。這些自動化物件可能同時存在的 WSH 指令碼之外,但它們必須建立在裝載環境 (亦即為 Microsoft 動態伺服器網頁 [ASP] Server.CreateObject) 或 WScript.CreateObject ObjectContext WSH 或只是 CreateObject Microsoft Visual Basic。記下下列範例的差異。WSH 和 ASP 都有內建方法和不超出其各自的環境 WSH-Wscript.Echo,ASP-Response.Write 可用的屬性。

WSH 範例
Set objWSH = WScript.CreateObject("WScript.Network")
WScript.Echo objWSH.Userdomain
WScript.Echo objWSH.Username
				

ASP 範例
<%
Set objWSH = Server.CreateObject("WScript.Network")
Response.Write objWSH.Userdomain
Response.Write objWSH.Username
%>
				

Visual Basic 範例
Set objWSH = CreateObject("WScript.Network")
MsgBox objWSH.Userdomain
MsgBox objWSH.Username
				

與上述範例,其中示範 WScript Automation 物件,不同的是下列範例會說明不能呼叫由 ObjectContext.CreateObject 方法 (請注意 WScript 不執行個體化之前要呼叫 WScript.Sleep,可以只用於 WSH 指令碼中) 的 WScript 方法:
WScript.Sleep 1000
objWSH = WScript.Version
objWSH = WScript.ScriptFullName
				
的下列屬性和方法必須執行的 WSH 而定如果他們存取的 WSH 內容之外,便會發生錯誤:
  • 屬性
    • 應用程式
    • 引數
    • FullName
    • 名稱
    • 路徑
    • ScriptFullName
    • ScriptName
    • 版本
  • 方法
    • 「 回應 (Visual Basic 應用程式使用 MsgBox 函式或 Debug.Print)
    • 睡眠狀態 (如 Visual Basic 應用程式使用 Sleep() Win32 API 或 SetWaitbleTimer() Win32 API [請參閱 < 參考 >])。
    • 快顯功能表 (在 Visual Basic 應用程式使用 MsgBox 函式)
StdIn 屬性、 StdOut 屬性和 StdErr 屬性可使用從 Visual Basic,但它們需要主控台程式。這些也可以藉由開啟 $ CON 成檔案,使用適當的 API 來存取。

所有 WSH 方法重複由 Visual Basic 可以存取其他 API 呼叫。

雖然 WSH 物件模型不能存取透過 Visual Basic 物件,相同的功能是可透過 Visual Basic 語言和 Win32 API。

?考

如需有關 SetWaitbleTimer() Win32 API,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
231298? (http://support.microsoft.com/kb/231298/ ) 如何使用與 Visual Basic SetWaitableTimer
如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中 「 文件]:
190000? (http://support.microsoft.com/kb/190000/ ) 如何開始程式設計與 Windows API (LONG)
202179? (http://support.microsoft.com/kb/202179/ ) 如何從 Visual Basic 呼叫 Windows API 函式具有特殊需求
171654? (http://support.microsoft.com/kb/171654/ ) 如何將主控台視窗附加至您的 Visual Basic 程式

這篇文章中的資訊適用於:
  • Microsoft Windows Scripting Host 2.5
  • Microsoft Windows Scripting Host 2.5
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 4.0 Enterprise Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
關鍵字:?
kbmt kbdswmanage2003swept kbinfo KB279164 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:279164? (http://support.microsoft.com/kb/279164/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。