JS呼叫本地exe(通過URL Protocol)

陳昊元發表於2020-10-25

一、在登錄檔中寫入URL Protocol

  • 執行以下*.reg檔案寫入登錄檔
    Windows Registry Editor Version 5.00
    
    [HKEY_CLASSES_ROOT\ChyProtocol]		;設定URL Protocol的名稱是'ChyProtocol',在Web中呼叫的時候就是使用這個名稱
    "URL Protocol"="C:\\WINDOWS\\NOTEPAD.EXE"	;設定URL Protocol要呼叫的本地exe檔案路徑
    
    [HKEY_CLASSES_ROOT\ChyProtocol\DefaultIcon]
    @=""					; @符號表示建立一個預設鍵值對
    
    [HKEY_CLASSES_ROOT\ChyProtocol\shell]
    @=""
    
    [HKEY_CLASSES_ROOT\ChyProtocol\shell\open]
    @=""
    
    [HKEY_CLASSES_ROOT\ChyProtocol\shell\open\command]
    @="\"C:\\WINDOWS\\NOTEPAD.EXE\"  \"%1\"" 	; 這裡表示傳入1個引數,注意有空格符號(永遠是1個引數就夠了,因為瀏覽器呼叫時只會把整個URL作為引數傳過來)
    

在這裡插入圖片描述

二、在js中呼叫URL Protocol

  • 測試:用超連結呼叫URL Protocol
  • 注意,exe得到的引數是整個url:"ChyProtocol://name=haha&id=123456",需要自己手動解析
    <a href="ChyProtocol://name=haha&id=123456"> Call My EXE</a>
    
    在這裡插入圖片描述

參考資料

相關文章