天天看點

使用VS2010 C#開發ActiveX控件

  在網上查了一些資料也實際操作了一下,在此自己再作一次詳細記錄。

  功能:将對機具操作的FK.dll封裝成fk.ocx,注冊後能在網頁上對機器操作。

使用Visual Studio 2010 .NET Framework 2.0(C#)

開發ActiveX步驟:

建立一個應用程式解決方案,并添加一個Windows控件庫項目

    

使用VS2010 C#開發ActiveX控件

  2. 更改“項目屬性-應用程式-程式集資訊”設定,勾選“使程式集 COM 可見”

使用VS2010 C#開發ActiveX控件

  3.更改“項目屬性-生成”設定,勾選“為 COM Interop 注冊”(注意,此處如果實在debug狀态下修改的,那在調到release狀态下還需要再設定一次):

使用VS2010 C#開發ActiveX控件

  4.修改AssemblyInfo.cs檔案,添加[assembly: AllowPartiallyTrustedCallers()]項(需要引用System.Security名稱空間):

使用VS2010 C#開發ActiveX控件

  5.添加一個Windows使用者控件名稱:DHFkAttendOCX(自已定義,可以将已有的更改名稱)

  6.為控件類添加GUID,這個編号将用于B/S系統的用戶端調用時使用(可以使用 工具-建立GUID 菜單建立一個GUID,再複制):

使用VS2010 C#開發ActiveX控件

  7.為了讓ActiveX控件獲得用戶端的信任,控件類還需要實作一個名為“IObjectSafety”的接口,要建立該接口(注意,不能修改該接口的GUID值),IObjectSafety.cs代碼如下:

   

  8.然後在控件類中繼承并實作該接口,可以直接複制不用作任何更改:

  9.引用自己想要封裝的FK.dll

  10.封裝

  11.打包并釋出ActiveX,與普通的Windows Form應用程式的安裝部署幾乎一樣,隻有一個地方需要注意,将前面建立的使用者控件項目作為主輸出項目,并設定其Register屬性為vsdrpCOM

 

使用VS2010 C#開發ActiveX控件

  12.給應用程式檔案夾添加項目輸出時,我們将DHFkAttendOCX項目添加進來,在項目中選擇DHFkAttendOCX控件項目

  13.将FK.dll和其它引用的dll都一并作為檔案添加

使用VS2010 C#開發ActiveX控件

  14.在系統檔案夾system32檔案夾中将msiexec.exe(解除安裝控件時用到)位址找到也添加至上面檔案夾

  15.在“使用者的程式菜單”中,建立檔案夾後加入主程式與msiexec.exe快捷方式

使用VS2010 C#開發ActiveX控件

  16.點選安裝項目工程,在屬性中将ProductCode複制,點選msiexec.exe快捷方式,在屬性Arguments中 加入"/x+一個空隔+ProductCode"

  

使用VS2010 C#開發ActiveX控件

  18.安裝成功後, 在頁面中添加<object id="csocx" classid="clsid:FE7EC23B-78A6-45B9-B61E-945970D963B6"></object>

       "FE7EC23B-78A6-45B9-B61E-945970D963B6"為第6步生成的GUID

  19.頁面中js中引用

  20.大功造成。

  21.附代碼

   22.要注意的是,浏覽器要設定以下控件才能正常運作

安裝所需要的控件後:

打開IE浏覽器,在菜單欄點選“工具”—“Internet選項”—“安全”頁籤。

   1. 點選“受信任站點”  

使用VS2010 C#開發ActiveX控件

   2.然後點選“站點”彈出如下圖檔:

使用VS2010 C#開發ActiveX控件

  3.按照上圖填寫内容後,點選“添加”然後點“确定”. 

  4. 設定自定義安全級别(internet本地、受信任站點均需要)   

    5.點選“自定義級别”,彈出如下圖檔,選擇“安全級 – 低” 然後将元件全部“啟用”:

使用VS2010 C#開發ActiveX控件
使用VS2010 C#開發ActiveX控件
使用VS2010 C#開發ActiveX控件
使用VS2010 C#開發ActiveX控件

繼續閱讀