妙用VBScript自製IE工具列按鈕
來源:互聯網
上載者:User
vbscript|按鈕 IE工具列上的各種按鈕可不是Microsoft的專利,普通使用者一樣能夠對其進行自訂,添加想設定的按鈕,至於添加的方法,很多資料上都介紹過。具體的實現方式不外乎兩種,一是使用冗長且複雜的VC或VB代碼程式,這對普通使用者來說要求是過高了一點,通常搞得人滿頭霧水而不達目的;二是用手工的方法來完成,但是這種方法因為要大幅度地修改系統註冊表,系統極不安全,一不小心就會弄巧成拙,讓你重新安裝系統!
我這裡介紹一個折衷的方法,用VBScript自製IE工具列按鈕,它既不需要冗長複雜的程式碼,又不需要繁瑣地去修改系統註冊表,但一樣能達到自製IE工具列按鈕的目的。
無論是用VB或VC還是用手工的方法添加按鈕,說到底就是要去修改系統註冊表。VBScript也不例外,但是它的代碼簡單易懂,安全易學。既然要改註冊表,那就要知道操作目標在註冊表中的的路徑。IE的自製工具列按鈕在註冊表中的的路徑為:
[HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions]
在該分支下的每一個主鍵,即表示一個自製的工具列按鈕。如:
{CD67F990-D8E9-11d2-98FE-00C0F0318AFE}表示:RealPlayer
{57E91B47-F40A-11D1-B792-444553540000}表示:NetAnts
仿照以上這些主鍵,我們可以自己“製造”一個{00000000-0000-0000-0000-000000000001}(不過要注意的是,這一個索引值一定要是唯一的,要不可能破壞其它的工具列按鈕)。
在這每一個主鍵之下通常有以下幾個索引值(均為字串型):
ButtonText:自訂按鈕上顯示的文本。
CLSID: IE工具條的類標識碼,恒為“{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}”。
Default Visible:控制自訂按鈕是否可見,一般為“Yes”。
Exec:自訂按鈕執行的目標,可以為執行程式或超文本連結。
HotIcon:滑鼠移到按鈕上時顯示的表徵圖。
Icon:按鈕正常顯示的表徵圖。
MenuText:在IE的“工具”菜單中顯示的功能表項目。
MenuStatusBar:在狀態條上顯示的“注釋”文本。
知道了這些必備知識,再來用VBScript自製IE工具列按鈕就不難了,下面我就以添加“我的電腦”按鈕為例,來說明用VBScript實現自製IE工具列按鈕的方法。
AddButton.vbs(將下述代碼儲存為AddButton.vbs檔案)
定義一個能與作業系統溝通的對象
Dim WSHShell
Set WSHShell=WScript.CreateObject("WScript.Shell")
定義與按鈕相關的各種參數
KeyName_11="ButtonText"
KeyData_12="我的電腦"
KeyName_21="CLSID"
KeyData_22="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
KeyName_31="Default Visible"
KeyData_32="Yes"
KeyName_41="Exec"
KeyData_42="C:\Windows\Explorer.exe"
KeyName_51="HotIcon"
借用RealPlayer的表徵圖
KeyData_52="C:\Program Files\Real\RealPlayer\eb_act.ico"
KeyName_61="Icon"
借用RealPlayer的表徵圖
KeyData_62="C:\Program Files\Real\RealPlayer\eb_inact.ico"
KeyName_71="MenuText"
KeyData_72="我的電腦"
KeyName_81="MenuStatusBar"
KeyData_82="開啟我的電腦"
定義與操作註冊表相關的參數
RegPath="HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{00000000-0000-0000-0000-000000000001}\"
DataType="REG_SZ"
定義一個在註冊表中添加各項參數的功能函數
Function ValueAdd(KeyName,KeyData)
WSHShell.RegWrite RegPath&KeyName,KeyData,DataType
End Function
調用Add()過程,添加各項參數到註冊表
Call ValueAdd(KeyName_11,KeyData_12)
Call ValueAdd(KeyName_21,KeyData_22)
Call ValueAdd(KeyName_31,KeyData_32)
Call ValueAdd(KeyName_41,KeyData_42)
Call ValueAdd(KeyName_51,KeyData_52)
Call ValueAdd(KeyName_61,KeyData_62)
Call ValueAdd(KeyName_71,KeyData_72)
Call ValueAdd(KeyName_81,KeyData_82)
彈出“確認”資訊框,並作出相應的處理
Dim confirm
confirm=MsgBox("自製按鈕已成功添加,需要重新啟動系統才會生效,要重新啟動嗎?",4,"請確認!")
If confirm=6 Then
MsgBox("自製按鈕已成功設定,請重新啟動系統!")
Else
WScrip t.Quit()
End If