1、注冊應用程式來處理自定義協定
你必須添加一個新的key以及相關的value到hkey_classes_root中,來使應用程式可以處理特殊的url協定。
新注冊的key必須與協定scheme相比對才可以被添加。例如,增加一個“alert:”協定,被增加到hkey_classes_root的key必須是alert。在這個新的key之下,預設的字元串value将顯示新協定的名字,并且url協定字元串value将包含協定特有的資訊或者空字元串。keys将同樣被添加到defaulticon和shell中。
預設的defaulticon key的字元串value必須是新url協定圖示檔案名的路徑。
在shell key之下,一個key使用一個動詞(就像open)将被添加。一個command(指令) key和一個ddeexec(動态資料交換執行) key都是使用動詞來添加的。這command和ddeexec keys之後的values都是用來調用(或者啟動)處理新協定的應用程式。
2、啟動處理程式
當一個使用者點選一個注冊了你的自定義url協定的連結後,windows internet explorer(ie)啟動注冊的url協定的處理器。如果指定shellopen指令在系統資料庫中包含一個%1參數的話,internet explorer傳遞這個uri給注冊協定的處理器。這最後的統一資源辨別符(uri)被編碼(%1);即16進制換碼符被轉換為等價的utf-16字元。例如,用%20字元串取代空格。
安全警示:應用程式處理url協定必須全力面對惡意資料。因為處理程式接收來自不信任源的資料,url和其它參數值傳遞給應用程式可能包含的惡意資料企圖使用處理程式。是以,處理程式可以首先啟動基于外部資料的空閑行為确認這些行為以及它們的使用者。
3、示例
windows registry editor version 5.00
[hkey_classes_root\lxnetwork]
@="lxnetworkprotocol"
"url protocol"="d:\\abc.exe"
[hkey_classes_root\lxnetwork\defaulticon]
@="d:\\abc.exe,1"
[hkey_classes_root\lxnetwork\shell]
[hkey_classes_root\lxnetwork\shell\open]
[hkey_classes_root\lxnetwork\shell\open\command]
@="\"d:\\abc.exe\" \"%1\""
3、調用
<a href="lxnetwork://message"> dd</a>
将這裡的代碼儲存到txt然後在改成html,打來試一下正常嗎?