Windows中從瀏覽器啟動本地應用程序 Pluggable Protocol


項目中需要從網頁中打開一個本地應用程序,並傳遞給應用程序啟動參數

方法有很多,最簡單的一種是通過自定義協議,類似於mailto http https 主流瀏覽器都支持

只需要在注冊表中添加相應內容即可

官方叫做 Pluggable Protocol,瀏覽器只完成啟動程序,傳遞參數工作,程序獨立運行,不能與網頁交互

比如

自定義協議名為DEMO,

要啟動的應用程序完整路徑為 C:\DIR\EXE.exe

Web 請求為 DEMO://AAA:a;BBB:b;CCC:c;

HKEY_CLASSES_ROOT
   DEMO                                   (Default) = "URL:DEMO Protocol"
                                           URL Protocol = ""
      DefaultIcon                         (Default) = "C:\DIR\EXE.exe,1"
      shell
         open
            command                       (Default) = "C:\DIR\EXE.exe" "%1"

command 就是啟動程序的命令行 

官方文檔中講 %1 將會被替換為 協議內容 DEMO://AAA:a;BBB:b;CCC:c;   並且URI編碼

                        但實際程序接收到的參數為 DEMO://AAA:a;BBB:b;CCC:c;/  多出了一個字符 (測試環境 Firfox21.0 chrome27.0.1453.94 IE8 360瀏覽器)

注冊表內容還可以添加到HKEY_LOCAL_MACHINE\SOFTWARE\Classes\下,結構與HKEY_CLASSES_ROOT相同

 

官方文檔 http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM