在網頁上啟動你的應用程式

一劍平江湖發表於2014-05-01

簡單一點的做法,是通過客戶端js來啟動。這樣做有安全隱患,因此window後面版本的作業系統,嚴格限制了js的許可權。


研究qq的實現方式,發現非常簡單。看下面的註冊檔案:


Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test]
@="Test"
"URL Protocol"="應用程式路徑 %l"


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test\DefaultIcon]
@="%SystemRoot%\\system32\\url.dll,0"


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test\Shell]


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test\Shell\open]


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test\Shell\open\command]
@="應用程式路徑 %l"


你可以直接將它儲存為一個reg檔案然後註冊,或者在你的應用程式安裝時直接修改登錄檔。




在你的網頁上加一個這樣的連結:
<A href='Test://para1&para2&para3'>


如果你點這個連結,你在註冊檔案裡的應用程式就可以被啟動了。


還有一個需求,一般從網頁啟動應用需要傳遞引數(上面連結後面帶了三個引數),做法如下:


你的應用程式主函式要這樣接收引數:


static void Main(string[]   args) 
  {
   if(args.Length>0)
   {
    //存引數
    }
  }
通過args[index]就可以訪問到你傳遞的引數了。




例如:
通過網頁開啟金山詞霸 D:\Program Files\Powerword 2007\xdict.exe 程式路徑
把下面的程式儲存為reg檔案,雙擊執行就可以(一定要包含第一行版本資訊)


Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test]
@="Test"
"URL Protocol"="D:\\Program Files\\WindowsApplication1.exe %l"


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test\DefaultIcon]
@="%SystemRoot%\\system32\\url.dll,0"


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test\Shell]


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test\Shell\open]


[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Test\Shell\open\command]
@="D:\\Program Files\\WindowsApplication1.exe %l"


呼叫
<A href='Test://message?username=daniel' id="test">ddd</A>

相關文章