這個方法主要思路是利用自定義URL Protocol來調用應用程序。瀏覽器在解析到自定義URL Protocol之后,會尋找注冊表,然后通過注冊表啟動相應的程序,然后啟動改程序,傳入參數。對於我這個項目而言,主要思路是利用這個自定義URL Protocol的方法,打開一個c#的應用程序,在這個程序中再調用系統命令,打開jar應用程序,並傳入參數。主要實現步驟如下:
1.添加自定義URL Protocol
#####################################################################################
1.##Windows Registry Editor Version 5.00
2.##[HKEY_CLASSES_ROOT\Simu]
3.##"URL Protocol"="x:\\simu\\Simulink.exe"
4.##@="SimuProtocol"
5.##[HKEY_CLASSES_ROOT\Simu\DefaultIcon]
6.##@="x:\\simu\\Simulink.exe,1"
7.##[HKEY_CLASSES_ROOT\Simu\shell]
8.##[HKEY_CLASSES_ROOT\Simu\shell\open]
9.##[HKEY_CLASSES_ROOT\Simu\shell\open\command]
10.##@="\"x:\\simu\\Simulink.exe\" \"%1\""
#####################################################################################
在#內的為自定義URL Protocol的注冊表信息,我對每一行說明一下:第一行是注冊表工具的版本信息,可以自己改一改,或者自己導入任意一個注冊信息,把這一行復制過來就行了;第二行中的Simu就是在HKEY_CLASSES_ROOT下面添加一個Simu樹,其中Simu的名稱就對應着自定義URL Protocol的名稱,在web中調用的時候需要這個名稱;第三行中的"x:\\simu\\Simulink.exe"是指定應用程序的路徑,注意只能是exe的程序;第四行是協議的名稱,可以是任意字符串,后面不會用到;第五行表示在Simu中再加一個分支,照抄,不用管;第六行中的x:\\simu\\Simulink.exe也是對應的程序路徑,后面的1照抄;第七行同第五行;第八行同第五行;第九行同第五行;第十行也是將路徑換成自己的程序路徑即可,其中%1表示到參數,參數可以在你的程序simulink.exe中解析得到。分析畢。
將#之間的內容復制到一個txt文檔中,修改后綴名為.reg,雙擊該文件即可直接導入到注冊表中。如下圖:
如果本機裝有QQ,也可以從QQ的注冊表里得實例。
3.在web中調用自定義協議啟動程序
調用協議很簡單,就是一個鏈接即可,如下所示:
<a href="Simu://hello">SIMU</a>
需要指出的是:在標題1中的第10行注冊表中代碼中的%1表示傳入參數,就是對應這此處的Simu://hello,解析之后就可以得到參數hello了。
效果如下圖所示:
(1)web頁面
(2)點擊之后
(3)點擊啟動程序