在網上查了一些資料也實際操作了一下,在此自己再作一次詳細記錄。
功能:将對機具操作的FK.dll封裝成fk.ocx,注冊後能在網頁上對機器操作。
使用Visual Studio 2010 .NET Framework 2.0(C#)
開發ActiveX步驟:
建立一個應用程式解決方案,并添加一個Windows控件庫項目
2. 更改“項目屬性-應用程式-程式集資訊”設定,勾選“使程式集 COM 可見”
3.更改“項目屬性-生成”設定,勾選“為 COM Interop 注冊”(注意,此處如果實在debug狀态下修改的,那在調到release狀态下還需要再設定一次):
4.修改AssemblyInfo.cs檔案,添加[assembly: AllowPartiallyTrustedCallers()]項(需要引用System.Security名稱空間):
5.添加一個Windows使用者控件名稱:DHFkAttendOCX(自已定義,可以将已有的更改名稱)
6.為控件類添加GUID,這個編号将用于B/S系統的用戶端調用時使用(可以使用 工具-建立GUID 菜單建立一個GUID,再複制):
7.為了讓ActiveX控件獲得用戶端的信任,控件類還需要實作一個名為“IObjectSafety”的接口,要建立該接口(注意,不能修改該接口的GUID值),IObjectSafety.cs代碼如下:
8.然後在控件類中繼承并實作該接口,可以直接複制不用作任何更改:
9.引用自己想要封裝的FK.dll
10.封裝
11.打包并釋出ActiveX,與普通的Windows Form應用程式的安裝部署幾乎一樣,隻有一個地方需要注意,将前面建立的使用者控件項目作為主輸出項目,并設定其Register屬性為vsdrpCOM
12.給應用程式檔案夾添加項目輸出時,我們将DHFkAttendOCX項目添加進來,在項目中選擇DHFkAttendOCX控件項目
13.将FK.dll和其它引用的dll都一并作為檔案添加
14.在系統檔案夾system32檔案夾中将msiexec.exe(解除安裝控件時用到)位址找到也添加至上面檔案夾
15.在“使用者的程式菜單”中,建立檔案夾後加入主程式與msiexec.exe快捷方式
16.點選安裝項目工程,在屬性中将ProductCode複制,點選msiexec.exe快捷方式,在屬性Arguments中 加入"/x+一個空隔+ProductCode"
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. 點選“受信任站點”
2.然後點選“站點”彈出如下圖檔:
3.按照上圖填寫内容後,點選“添加”然後點“确定”.
4. 設定自定義安全級别(internet本地、受信任站點均需要)
5.點選“自定義級别”,彈出如下圖檔,選擇“安全級 – 低” 然後将元件全部“啟用”: