轉載:http://chinazblz.blog.163.com/blog/static/93939173201057102943116/ 如果你想通過C#和VB.net來做ActiveX的請,我勸你儘快打消這個念頭。.net認爲ActiveX技術是過時的,所以C#和Vb.net都做不了ActiveX。C#和VB.net可以做類似的東西,但它不叫ActiveX而是叫windows控件,前提是客戶端機器必須安裝了.net framework才能運行。但是,目前很多機器都沒有安裝.net framework,至少也要等到Vista普及得差不多的時候,ActiveX技術纔可能退出歷史舞臺。 那麼,我應該採用什麼技術開發ActiveX呢?可以採用VB6和C++或C++.net。由於本人不懂C++,本以爲會和C#差不多,用VS新建了一個MFC ActiveX項目,打開一看,代碼像天書一樣完全看不懂,所以決定採用VB6。雖然VB偶也不會,但是VB還是相對要簡單一些,資料也多一些。 如何用VB開發ActiveX在這裏不細說,可以參考這篇文章:ASP與ActiveX控件交互實戰(http://blog.csdn.net/online/archive/2004/08/09/68872.aspx) ,講得非常詳細。 這裏只介紹本人遇到的幾個難題: 可以用js將form傳遞到AcitveX中去。用VB操作Html元素(dom),需要添加一個引用,方法是:工程 > 引用 > 勾選Microsoft HTML Object Library > 確定 然後在代碼中,添加一個接受客戶端form的方法: 客戶端html將form傳遞到ActiveX內部去: 將form傳遞到ActiveX後,ActiveX就可以操作這個form了,假如用戶單擊ActiveX內部的一個按鈕,然後提交這個表單: 下面說第二個問題 如果不解決這個問題,我們前面的工作等於白乾。怎麼辦呢?需要修改客戶端註冊表, 添加類似於下面這樣的項(用控件的類 ID 取代 HKEY_CLASSES_ROOT\CLSID\{06889605-B8D0-101A-91F1-00608CEAD5B3}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4} HKEY_CLASSES_ROOT\CLSID\{06889605-B8D0-101A-91F1-00608CEAD5B3}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4} 但是怎麼去修改客戶端機器的註冊表呢?這就需要在ActiveX控件安裝時操作了。因此,我們需要製作一個ActiveX安裝程序,這裏我們採用Visual Studio 2005來製作安裝程序。 1.打開vs,新建一個安裝項目 你會發現,那個提示沒有了,而且不需要在IE中添加信任站點即可直接使用!是不是特別爽啊? 到此爲止,介紹的差不多了。還有幾個問題需要研究: |
轉自:http://hi.baidu.com/%B7%E7%D6%D0%C1%E9%D2%A9/blog/item/9fb6cdc8d320e3137e3e6f42.html