web調用客戶端程序


2018.3.15更新
慚愧今天才看到這篇博客http://www.cnblogs.com/leslies2/p/3727762.html,寫的很贊,很全面,就是有點長,哈哈,不過看來搜索也是一門學問啊。


背景

最近做一個集成需求,我們是B/S架構的,對方是C/S架構的,對方直接扔過來一個EXE連OCX都沒有,讓我們調用,也就是說,我們需要通過js程序去調用他們的客戶端程序並傳入多個參數,當時內心是崩潰的,網上查了些資料,發現還真的可以!下面開始。

原理

1.在注冊表中把需要調用的exe注冊一個調用協議 2.在瀏覽器中通過 標簽來直接調用

設置注冊表調用協議

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\Browser]
    @=""
    "URL Protocol"=""

    [HKEY_CLASSES_ROOT\Browser\DefaultIcon]
    @="D:\\MyCode\\learnTest\\RegisterURI\\wrapper.exe"

    [HKEY_CLASSES_ROOT\Browser\Shell]
    @=""

    [HKEY_CLASSES_ROOT\Browser\Shell\Open]
    @=""

    [HKEY_CLASSES_ROOT\Browser\Shell\Open\Command]
    @="D:\\MyCode\\learnTest\\RegisterURI\\wrapper.exe %1"

說明:
     Browser:自定義的協議名稱;
     D:\MyCode\learnTest\RegisterURI\wrapper.exe :調用的exe文件路徑;
     %1 :代表傳入的參數;
    以上內容可以直接保存到記事本里,修改為.reg文件,雙擊執行即可。
    當然,也可以regedit直接進注冊表一級一級的設置,具體修改注冊表自行搜索。
    文章末尾有demo可以下載參考

效果如圖:

如何調用

1.一個
標簽即可: 測試調用EXE 2.使用JQuery創建a標簽調用:
	function send() {
        var link = $('<a href="Browser:// 0000513082 R475323015"></a>');
        $('body').append(link);
        link.get(0).click();
        link.remove();
     }

說明:
    (敲黑板~)此處重點,重點,重點
    Browser:// 定義的注冊表協議名,會作為第一個參數傳入,多個參數用空格分割即可,看下圖,最后一個參數會自動添加/需要單獨處理。
執行效果:

參考鏈接

1.https://msdn.microsoft.com/en-us/library/aa767914.aspx#app_ex  (msdn強烈推薦)
2.http://www.cnblogs.com/hwade/archive/2008/01/08/1029686.html
Demo下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM