JAVASCRIPT 調用 OCX 的那些坑

來源:互聯網
上載者:User

標籤:微軟   com   tar   title   script   控制項   ret   cti   去掉   

這個東西我之前已經想寫了,但是在我寫完“製作OCX”,“MFC應用OCX” 之後,html 調用OCX 就一直不成功,搞了好久,都快要放棄了。昨天領導需要我這邊完成一個通過瀏覽器啟動外部應用程式這樣一個功能,限於公司懂OCX 的不多,就擔起了這個任務。我知道之前嘗試的時候就失敗了,所以這次又進了那個坑,坑了我好久,直到快下班前才解決。

記錄下解決方案。

一,首先準備一個可以正常啟動並執行OCX。

這個東西還是用c++寫比較方便,前幾篇已經寫過了,就不多贅述了。

二,準備一個註冊和卸載OCX 的批次檔

註冊.bat

regsvr32 "%~dp0ocx15.ocx"

卸載.bat

regsvr32 "%~dp0ocx15.ocx" -u

三,準備一個調用OCX 的html 檔案

 

<html><head><script type="text/JavaScript" language="javascript">  function show(string1) {       alert(‘123‘);       var obj = document.getElementById("TestOcx");       alert(obj);       var ret = obj.StartApplication(string1);       alert(ret); }</script></head><body ><object id="TestOcx" width="" height="" classid="clsid:440BF279-30B8-41D2-AFE7-F19141110C96"></object></OBJECT> <input type="button" id="btn1" name="btn1" value="調用ocx" title="調用ocx" onclick="show(‘file:///D:/SE-1515/ECGWorkstation.exe.lnk‘)"></input></body></html>

 

這裡的classid 一定要注意,當時我看到OCX工程中idl 檔案下UUID 有很多個,我也不知道用哪個,就用了檔案最上面的一個uuid,結果呢,就是因為uuid錯誤,調試了好久。這裡的uuid 最好從註冊表中拿到,拿的方法如下:

在運行中鍵入 regedit 進入登錄編輯程式中,在編輯選項中點擊尋找,

這是就找到我們註冊的OCX 了。這裡的440BF279-30B8-41D2-AFE7-F19141110C96 就是我們要的clsid,

這時,html 頁面還不一定能顯示出這個OCX控制項,需要在Internet 選項中,啟用 ActiveX ,方便起見,我把該項下,所有的用ActiveX 的都啟用了。

同時在進階選項下,去掉那3個檢查項。

這個時候,你的html 頁面應該會可以顯示出OCX控制項了,當然你也隱藏,調用OCX 應該就沒什麼問題了,html 調用OCX 這個只能試用於IE 瀏覽器,別問我為什麼,都是微軟的東西。

 

四,注意事項

1,  注意clsid一定要正確

2,  注意Internet選項裡面的設定。

3,  注意一定要是IE 瀏覽器。

 

JAVASCRIPT 調用 OCX 的那些坑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.