史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 作業系統操作技術文件
忘記密碼?
註冊帳號 論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-05-16, 05:04 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 如何往IE工具條增加按鈕

問題提出:
金山詞霸、網路螞蟻等軟體安裝後會向IE的工具條增加自己的按鈕。按下按鈕後還會作出相應的動作,這種功能是如何實現的呢?讀完本文,您也可以將自己應用程式的按鈕增加到IE的工具條中。

基本原理:
從IE5開始便允許我們向工作列增加自己的按鈕,其本質就是修改註冊表,增加新增此按鈕所需的訊息。

實現步驟:
1.新增此按鈕的GUID(globally unique identifier)
你可以通過Visual Studio中的Guidgen.exe來產生GUID。
例如我產生的GUID是{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
以下的例子中我都使用這個GUID來作說明。

2.新增子鍵HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer\\Extensions\\{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}

3.在此子鍵下新增如下字串值。
(1)CLSID
這是IE的CLSID,其值必須為{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
(2)Default Visible
指明此按鈕預設值狀態下是否可見,Yes表示可見,No為不可見
(3)ButtonText
按鈕文字
(4)Icon
預設值狀態下的圖示全路徑,例如c:\\vckbase.ico。也可以是EXE文件中包含的圖示,例如:C:\\PROGRA~1\\NETANTS\\NetAnts.exe,1000
(5)HotIcon
滑鼠移到按鈕上時的圖示全路徑

如下子鍵為按下按鈕後需要執行的相應動作:可以是COM對像、瀏覽條Explorer Bar、指令碼Script、可執行文件。
下面我們逐個進行介紹。
1COM對像
你需要建立名為ClsidExtension的字串值,其值應該為此COM對象的GUID
例如金山詞霸就使用ClsidExtension來使用自己的COM對象。

2瀏覽條Explorer Bar
所謂瀏覽條就是類似我們按下往IE歷史按鈕後開啟的歷史記錄列表,其本質好比MFC中的CReBar對象。 瀏覽條也可以自己製作,
因為超出了本文的範圍,暫不作講解。
為了在按下按鈕後開啟一個瀏覽條,你需要建立名為BandCLSID的字串值,其值為瀏覽條的CLSID

3指令碼Script
按下按鈕後執行的指令碼,例如:%SystemRoot%\\web\\related.htm
你可以在這個HTML文件裡面加上指令碼來得到IE現用的許多訊息,需要注意的是假如你想通過Script開啟非指令碼的HTML文件是不可行的。
請參考如下NetAnts取得本頁所有連接的指令碼程式碼


<script language=VBScript>
--On Error Resume Next
--set NetAntsApi = CreateObject( NetAnts.API )
--if err<>0 then
-- --Alert(NetAnts not properly installed on this PC!)
--else
-- --set links = external.menuArguments.document.links
-- --ReDim params(links.length*2)
-- --params(0)=external.menuArguments.document.Url
-- --for i = 0 to links.length-1
-- -- --params(i*2+1)=links(i).href
-- -- --params(i*2+2)=links(i).innerText
-- --next
-- --NetAntsApi.AddUrlList params
--end if
</script>

我們再看一個比較有用的指令碼,這段指令碼的作用是得到當前位址,並開啟此網址的首頁。


<script>
--//userURL得到的是當前位址,例如是http://www.vckbase.com/article/controls/index.html
--userURL=external.menuArguments.location.href;
--protocolIndex=userURL.indexOf(://,4);
--serverIndex=userURL.indexOf(/,protocolIndex + 3);
--finalURL=userURL.substring(0,serverIndex);
--external.menuArguments.open(finalURL, _blank);///開啟網址http://www.vckbase.com/
</script>

關於external等對象的具體使用方法請參閱微軟的《動態HTML開發參考大全》--人民郵電出版社出版

4可執行文件
假如我們想讓IE在按下按鈕後執行一個可執行文件, 你可以增加名為Exec的字串值,其值為此可執行文件的全路徑,
例如c:\\windows\\notepad.exe或者是一個網址http://www.vckbase.com/index.html
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1625 篇, 收花: 3188 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 06:23 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2018, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1