Windows 98的Shell語言
楊山河
從DOS摸爬滾打過來的資深CFAN都知道批處理語言棗編輯一個批次檔,馬上即可在DOS下執行,完成一些不需太多互動的任務。這樣的語言有人稱之Shell語言。不知大家注意到沒有在Windows98系統裡也有Windows下的Shell語言,那就是指令碼語言。
Windows98系統支援的指令碼語言有兩種:VBScript和JavaScript。如果您編輯了副檔名為vbs或js的文字檔,您會在檔案夾中看到系統給檔案的一個表明此種檔案早登入的表徵圖。不是給出預設的表徵圖說明至少有一個程式與之關聯,這個應用程式是誰呢?如果查詢註冊表,您將瞭解到與之相關的是“C:/WINDOWS/WScript.exe “。此程式是一個指令碼語言解譯器,正是它使得您雙擊指令碼即可馬上(象執行DOS批處理一樣)執行。
指令碼語言基本上遵守 VB和VJ規則,以前必須在IE等瀏覽器或VB中解釋的指令碼現在可以直接執行。利用指令碼語言我們可以完成一些無需太多使用者互動的功能,比如您要在註冊表中添加或刪除某些項目,您可以參考下面的指令碼:
Message_Text = "此指令碼顯示如何讀寫登錄機碼。"
Title_Text = "如何利用指令碼讀寫註冊表"
Call Welcome()
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Popup "建立項 HKCU/MyRegKey 數值為 'Top level key'"
WSHShell.RegWrite "HKCU/MyRegKey/", "Top level key"
WSHShell.Popup "將數值項 HKCU/MyRegKey/Entry/Value1 設為 REG_BINARY 3"
WSHShell.RegWrite "HKCU/MyRegKey/Entry/Value1", 3, "REG_BINARY"
Sub Welcome()
Dim intDoIt
intDoIt = MsgBox(MsgBox_Message_Text,
vbOKCancel + vbInformation, Title_Text )
If intDoIt = vbCancel Then
WScript.Quit
End If
End Sub
可以看到,指令碼語言基本上沒有必須預先聲明資料類型的限制,跟我們在 DOS下使用的早期Basic類似。這段代碼首先向使用者顯示一個訊息框,在得到使用者的確認後(否則直接退出指令碼執行,返回至系統),建立一個ProgID(編程標識)為“WScript.Shell “的對象,然後利用該對象的Popup方法顯示提示資訊,利用RegWrite方法向註冊表添加一個鍵,這些稍懂VB的人一定不會覺得費解。比起其它語言羅羅嗦嗦的一大串,Windows98的Shell語言是不是簡單得多呢?如果以後有類似的應用,您是否會想到它呢?
如果覺得還不能完全領會Windows98的Shell語言的話,您可以瀏覽一下/Windows/samples/wsh檔案夾,這裡面有微軟給您的幾個樣本。試著一個個雙擊,您一定會被所發生的一切感到驚奇!不信,請現在就開啟機器試一試。
--
1998寫的,那時候98剛出來,挺新鮮的