有時候咱們想要實現一個功能,就是在HTML頁面點擊一個連接就能調用打開本地可執行文件。就像騰訊QQ、迅雷這種。 html
而實現這種功能其實也很簡單,就是須要咱們添加修改註冊表,實現自定義URL Protocol協議。shell
自定義URL Protocol 協議
一些應用軟件能夠在瀏覽器中點擊一個url後自動啓動,並執行操做。瀏覽器
1. win+r打開註冊表,輸入regedit進入註冊表函數
2. 在註冊表 左邊最上面HKEY_CLASSES_ROOT那個樹右鍵新建——項。該項的名稱本身命名,其實該名稱也是協議的名稱,咱們調用的時候就是根據該協議調用的,而我這裏隨便起了一個:ZZO。網站
3. 而後在該項中右鍵->新建->字符串值,建立一個URL Protocol的值,其中數據默認爲空。url
4. 而後在ZZO下新建->項,名字爲DefaultIcon.net
5. 在ZZO下新建->項,名稱爲shell。並在shell下新建名爲open的項。而後在open下新建名爲command的項3d
6. 而後分別修改DefaultIcon 和 command 的值爲要調用的程序完整路徑.htm
好比我這裏要調用的是QQ,完整路徑爲:D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exeblog
7. 而後咱們在html頁面添加一個a標籤
<a href="Zzo://">open</a>
8. 點擊頁面按鈕
經過網站調用可執行程序,主要是修改註冊表,註冊 URL Protocol 協議。
注意上面 command 項的值能夠爲 C:\Program Files (x86)\Qiaoker\updater.exe "%1" ,這個"%1"是傳遞給 updater.exe的參數。
加了後使用是咱們就能夠傳參數了,
<a href="Uaiqiy://cid:110&username:mjq">
方式二:使用js調起客戶端
除了上面那種方式,咱們還能夠經過調用js函數實現客戶端exe程序的調用,可是這種方式侷限性很大,目前只支持IE瀏覽器。
代碼以下:
function execProgram() {
var exepath = "D:\\Program Files (x86)\\Tencent\\QQMusic\\QQMusic.exe"
var ws = new ActiveXObject("WScript.Shell");
ws.Exec(exepath);
}
若是想要調用bat腳本或者vbs程序,能夠將ActiveXObject 的 Exec()方法替換成Run() 方法。
function execProgram() { var exepath = "C:\\Users\\LeBron\\Desktop\\新建.vbs" var ws = new ActiveXObject("WScript.Shell"); ws.Run(exepath);}