Javascript和OCX的結合歷程


這種相對古老的調用方式主要用在Windows系列平台上的多種語言軟件之間的合作。

此次項目合作方式是,客戶提供語音功能的OCX模塊和VC++客戶端軟件,我需要在WEB軟件中調用其中的接口開發相關功能,並且調用客戶端軟件。

由於是研究型的項目,我花了一天時間成功的實現了軟件調用(靜態安裝注冊OCX),分享一下過程。

① 注冊OCX到本機

注冊命令   :cmd.exe /c regsvr32.exe  my.ocx

去注冊命令:cmd.exe /c regsvr32.exe /u my.ocx

② 查看OCX注冊結果

執行regedit,打開注冊表,搜索ocx的文件名,得到注冊表項。

右鍵導出注冊表項到文件,得到如下的信息:

1 Windows Registry Editor Version 5.00
2 
3 [HKEY_CLASSES_ROOT\AppID\{C8E251BB-1326-4870-9BF4-53593AE5B108}]
4 @="my Control"

③ 在頁面中初始化該控件

1     <object id="myOcx" name="test" BORDER="0" WIDTH="300" HEIGHT="300"
2         style="display: none"
3         classid="clsid:C8E251BB-1326-4870-9BF4-53593AE5B108"
4         onerror="onObjectError()">
5     </object>

onerror方法很重要,如果未能正確的引用剛剛注冊的控件,會提示出錯。

SCRIPT438: 對象不支持“XX”屬性或方法。

這個錯誤查詢一抓一大把,但是有效的支持卻少之又少。

本人此次遇到以下幾個情況:

1.頁面引用錯誤的classid。

2.OCX未實現安全接口。

3.OCX未標記這段代碼能被js調用。

④ 在頁面中調用該控件

 1 function() {
 2     if (!window.ActiveXObject) {
 3         alert("對不起,證書登陸請使用IE瀏覽器!");
 4         return;
 5     }
 6     var myObj = document.getElementById("myOcx");
 7     var name = "201";
 8     var passwd = "201";
 9     var server = "192.168.8.250";
10     var result = myObj.register(name,passwd,server);
11 }

⑤ 設置IE瀏覽器

打開Internet選項->安全->Internet->自定義級別

在彈出框中選擇“ActiveX 控件和插件”選項,將和ActiveX相關的選項全部啟用。

運氣好的話,你就可以成功的調用OCX了。


免責聲明!

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



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