乍看之下,你可能不理解標題所云者何。其實我們經常看見這種情況:在網頁上有鏈接的地址是這樣的:
thunder://QUFodHRwOi8vNjEuMTYzLjkyLjE2Nzo4Mi9kb3duL1RodW5kZXI1LjkuMTQuMTI0Ni56aXBaWg==
一點擊便會出現迅雷下載鏈接指向的內容。flashget、QQ等很多常見的應該程序都有這種功能。是不是很驚奇這是怎麼做到的呢?這就是這篇文章所要談到的,爲你的應用程序註冊URL協議。實現過程非常的簡單。
首先,在註冊表的HKEY_CLASSES_ROOT下增加一個鍵(項),這個鍵名就是你的協議名,如上文提到的"thunder"。在該鍵中新建一個名爲URL Protocol 的字符串值並且將值留空。
然後,在該項下新建shell鍵,shell鍵下面再建open鍵,open鍵下面再建command鍵。
最後,將command的默認字符串值設置爲
"C:/Program Files/Test/YouApplication.exe" "%1""
這裏後面有個%1參數,表示瀏覽器在打開這個協議的時候,會將URL返回給你的應用程序。
不管你相不相信,我們已經基本大功告成了。現在註冊表裏應該是這個樣子的:
HKEY_CLASSES_ROOT
alert
(Default) = ""
URL Protocol = ""
shell
open
command
(Default) = "C:/Program Files/Test/YouApplication.exe" "%1"
剩下要做的只是在你的應用程序中對傳遞過來的參數做出響應。像聊天工具可能是根據參數來決定要打開與哪個人的聊天窗口,像下載工具可能是根據參數來決定下載地址,blablabla...