有時候我們想要實現一個功能,就是在HTML頁面點擊一個鏈接就能調用打開本地可執行文件。就像騰訊QQ、迅雷這種。 而實現這種功能其實也很簡單,就是需要我們添加修改註冊表,實現自定義URL Protocol協議。 自定義URL Protocol 協議一些應用軟體可以在瀏覽器中點擊一個url後自動啟動,並 ...
有時候我們想要實現一個功能,就是在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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!