有時候我們想要實現一個功能,就是在HTML頁面點擊一個鏈接就能調用打開本地可執行文件。就像騰訊QQ、迅雷這種。
而實現這種功能其實也很簡單,就是需要我們添加修改注冊表,實現自定義URL Protocol協議。
自定義URL Protocol 協議
一些應用軟件可以在瀏覽器中點擊一個url后自動啟動,並執行操作。
1. win+r打開注冊表,輸入regedit進入注冊表

2. 在注冊表 左邊最上面HKEY_CLASSES_ROOT那個樹右鍵新建——項。該項的名稱自己命名,其實該名稱也是協議的名稱,我們調用的時候就是根據該協議調用的,而我這里隨便起了一個:ZZO。

3. 然后在該項中右鍵->新建->字符串值,創建一個URL Protocol的值,其中數據默認為空。

4. 然后在ZZO下新建->項,名字為DefaultIcon

5. 在ZZO下新建->項,名稱為shell。並在shell下新建名為open的項。然后在open下新建名為command的項

6. 然后分別修改DefaultIcon 和 command 的值為要調用的程序完整路徑.
比如我這里要調用的是QQ,完整路徑為:D:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe


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);
}
---------------------
作者:lebron3v
來源:CSDN
原文:https://blog.csdn.net/lebron3v/article/details/80736744
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
