巧用WinRAR+Javascript解決activeX的自動安裝問題

來源:互聯網
上載者:User

先糾正一個觀點,所謂自動安裝並非強制安裝,否則就變成流氓軟體了,就算是silverlight,flash這類知名ActiveX,使用者也有選擇安裝或是不安裝的權利。

較正統的解決辦法是提示使用者佈建IE許可權,然後在object裡加入codebase='ocx的下載路徑',然後製作數位憑證,個人覺得這樣比較複雜。

我的辦法:

1.先用js檢測activex是否可用

代碼

 <object id='x' name='x' classid='clsid:82AB2103-26BC-4999-8DDE-DF1A647D96E5'></object>

 <script type="text/javascript">
    try{
        var x = document.getElementById('x');        
        if (x.Caption==undefined){
            if (confirm('您的機器上未安裝所需的ActiveX外掛程式!需要安裝嗎?')){
                window.open('http://www.youname.com/setup.exe')
            };
        }
    }
    catch(e){        
    }
 </script>

註:用delphi開發出來的activeX,預設肯定是有Caption屬性的,如果檢測到Caption屬性未定義,表明未安裝控制項,詢問使用者後,跳到下載安裝檔案。其它工具開發出來的ActiveX也可用類似思路檢測。

 

2.下載安裝檔案的處理 

activex的安裝其實也就是調用regsvr32命令對ocx進行註冊而已,所以基本上安裝就是一個copy & run的過程,完全可以用winrar搞定。

winrar能將檔案打包成exe格式的自解壓檔案,並且還能在解壓前或解壓後執行一些命令,甚至還能在"開始-->程式"中產生捷徑,這些足夠我們做一個安裝程式了。

(1)先寫幾個批處理,用於自動註冊或反註冊,以及刪除功能

install.bat 參考內容如下:(這裡假定程式安裝/解壓到c:\capture目錄下)
regsvr32 c:\capture\QQCaptureActiveX.ocx -s

uninstall.bat 參考內容:
regsvr32 c:\capture\QQCaptureActiveX.ocx /u

delete.bat 參考內容:
regsvr32 c:\capture\QQCaptureActiveX.ocx /u -s

del c:\capture\CameraDll.dll

del c:\capture\QQCaptureActiveX.ocx

del c:\capture\install.bat

del c:\capture\uninstall.bat

del c:\capture\delete.bat

rd c:\capture

(2)開始用WinRar製作安裝程式

 

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.