1. 程式人生 > >web呼叫客戶端程式

web呼叫客戶端程式

背景

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

原理

1.在登錄檔中把需要呼叫的exe註冊一個呼叫協議
2.在瀏覽器中通過<a>標籤來直接呼叫

設定登錄檔呼叫協議

    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\EmrBrowser\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可以下載參考

效果如圖:
1142573-20170827121325558-1880662638.jpg

如何呼叫

1.一個<a>標籤即可:
    <a href="Browser:// 0000513082 R475323015">測試呼叫EXE</a>
2.使用JQuery建立a標籤呼叫:

    function sendReportsToPrinter() {
        var link = $('<a href="Browser:// 0000513082 R475323015"></a>');
        $('body').append(link);
        link.get(0).click();
        link.remove();
     }

說明:
    (敲黑板~)此處重點,重點,重點
    Browser:// 定義的登錄檔協議名,會作為第一個引數傳入,多個引數用空格分割即可,看下圖,最後一個引數會自動新增/需要單獨處理。
執行效果:
1142573-20170827121353699-509045483.jpg

參考連結

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下載

相關推薦

web呼叫客戶程式

背景 最近做一個整合需求,我們是B/S架構的,對方是C/S架構的,對方直接扔過來一個EXE連OCX都沒有,讓我們呼叫,也就是說,我們需要通過js程式去呼叫他們的客戶端程式並傳入多個引數,當時內心是崩潰的,網上查了些資料,發現還真的可以!下面開始。 原理 1.在登錄檔中把需要

WEB程式呼叫客戶程式

我把程式編譯成edss.exe 2)用notepad編輯一個檔案,改名為edss.reg Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\EDSS] @="URL:EDSS Protocol" "URL Protocol"="" [HKEY_C

利用Axis2開發WebService(3)---用Java實現呼叫WebService的客戶程式

WebService是為程式服務的,只在瀏覽器中訪問WebService是沒有意義的。因此,在本節使用Java實現了一個控制檯程式來呼叫上一節釋出的WebService。呼叫WebService的客戶端程式碼如下: package client; impor

基於Leaflet 的Web地圖客戶應用程式開發框架

MarsGIS for Leaflet地圖框架 是火星科技研發的一個Web地圖開發平臺系統,是火星科技團隊成員多年GIS開發和Leaflet使用的技術沉澱。基於Leaflet和現代Web技術棧全新構建, 集成了領先的開源地相簿、視覺化庫,提供了全新的大資料視覺化、實時流資料視

基於 Cesium 的Web三維地球客戶程式開發框架

MarsGIS for Cesium三維地球框架 是火星科技研發的一個Web三維地圖開發平臺系統,是火星科技團隊成員多年GIS開發和Cesium使用的技術沉澱。基於Cesium和現代Web技術棧全新構建, 集成了領先的開源地相簿、視覺化庫,提供了全新的大資料視覺化、實時流資料

解決 IOS9.0 呼叫qq2.91SDK登入 只顯示web頁面而不能呼叫客戶登入的問題

找qq文件是沒有用的,關於如何在真機上呼叫qq的客戶端,文件裡並沒有說,讓我蛋疼 了一個下午,終於對照著qq的demo, 一個一個檔案的對比,發現還有配置檔案需要新增,類似於開啟某些許可權,才能呼叫起客戶端,如下,修改infi.plist,新增 LSApplicationQ

Android客戶程式通過Web Service實現對伺服器資料庫的查詢

1.eclipse+webservice開發例項 http://blog.csdn.net/xw13106209/article/details/7049614/ 2.java通過JDBC連結SQLServer2012 http://blog.csdn.net/stewen_001/article/det

ONVIF協議網路攝像機(IPC)客戶程式開發(4):使用gSOAP生成Web Services框架程式碼

1. 專欄導讀 本專欄第一篇文章「專欄開篇」列出了專欄的完整目錄,按目錄順序閱讀,有助於你的理解,專欄前面文章講過的知識點(或程式碼段),後面文章不會贅述。為了節省篇幅,突出重點,在文章中展示的示例程式碼僅僅是關鍵程式碼,你可以在「專欄開篇」中獲取完整程式碼。

(已解決)c# 客戶程式訪問oracle報錯:ORA-12154: TNS: 無法處理服務名

錯誤:ORA-12154: TNS: 無法處理服務名 這個錯誤大家在百度上一搜一大把,但是我出現這個錯誤的原因跟百度不太一樣,我的客戶端程式在不同的目錄可以正常執行,但在其中1個目錄就是要出錯,因此我想到是目錄路徑中出了問題,既然是路徑那就只能是資料夾名有什麼特殊之處導致不能執行,後來發現不能執

ftp客戶程式的三個實驗

準備好兩臺互相ping通的虛擬機器 一。匿名使用者 安裝需要用的包 vim 編輯主配置檔案 vim /etc/vsftpd/vsftpd.conf 第十二行等於YES 第十五行等於NO 27行和31行的#去掉 重啟服務service vsftpd restart 到客戶機端 安裝ftp服

java 使用html寫UI 做winform win桌面客戶程式(一)

大家好,今天給大家帶來使用java+html寫winform  win客戶端桌面程式的教程。 在讀本文之前你首先要能接受: 1   客戶端基於java+html所以 軟體包中需要包含 jre和 cef(chrome核心)的dll,軟體包比較大。 2 &

java web獲取客戶外網ip和所在區域

@參考文章1、@參考文章2、@參考文章3、@參考文章4,@之前同事的專案  controller @Controller @RequestMapping("/home") public class HomeController { @RequestMappin

使用wsimport命令建立Web Service客戶

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

支援 Appium 伺服器的客戶程式庫列表

這些庫封裝了標準的 Selenium 客戶端,提供了所有 JSON Wire protocol 指定的常規 selenium 命令,額外新增操控移動裝置相關的命令,例如 多點觸控手勢 和 螢幕方向。 Appium 客戶端程式庫實現了 M

boost::asio伺服器處理多個客戶連線(客戶程式)

//客戶端程式 // //  main.cpp //  tcpserver //  Created by suxianbin on 2018/9/15. //  Copyright © 2018 suxianbin. All rights

hdfs叢集第一個客戶程式

在叢集實體機中,我們可以直接通過實體機操作hdfs系統,直接使用hdfs命令將實體機中的檔案上傳至叢集檔案系統中,但實際應用中叢集會面向客戶端操作,不再是傳統命令操作,而是通過相應的客戶端程式來執行 測試之前先注意一下幾點: 1.叢集啟動狀況,是否正常

客戶程式設計師的工具們

人和動物的本質區別就是會製作和使用工具…… 日誌持續提升: eDiary 記錄工作筆記學習心得,可以加密,而且配置可以拷貝,非常好用,用了6年了。 檔案查詢 everything windows環境下快速檔案查詢,一個字,快。搜尋支援正則表示式。

TCP客戶程式(C語言)

TCP客戶端程式,與TCP伺服器端配合使用 Visual Stdio執行 // TCP客戶端.cpp : 定義控制檯應用程式的入口點。 // #include"stdafx.h" #include<stdio.h> #include<winsoc

嵌入式客戶程式開發大彙總

  先不說嵌入式客戶端程式開發,先看發展最好的客戶端程式開發領域:PC端(Win、IOS)、瀏覽器、移動端(Android、IOS)。這些客戶端開發程式設計師人數眾多、生產力極高的工具、良好的生態環境。客戶端程式有人稱為native開發,這是從網際網路開發角度看。   程式

java web 判斷客戶裝置是否移動

以下是全部程式碼,僅供參考! import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.servlet.http.HttpServlet; import javax.s