vb控件開發(fā)隨筆
項目需要使用一些本地控件,所以這幾天又折騰把以前的vb拿出來,做一個空間的例子。vb制作控件很簡單,這里也不再多說,我開發(fā)的控件名稱叫做test.ocx發(fā)布好,會生成相應的test.cab和test.hmtl測試頁面。
我要把這個控件發(fā)布的web工程中
1,首先復制cab到web目錄下,然后再頁面中添加控件信息,如下圖,
- <!-- 如果這頁上的任何控件需要授權(quán),您必須
- 創(chuàng)建一個授權(quán)包文件。 運行 LPK_TOOL.EXE 來創(chuàng)建
- 要求的 LPK 文件。 LPK_TOOL.EXE 將從 ActiveX SDK 中找到,
- http://www.microsoft.com/intdev/sdk/sdk.htm. 如果您有 Visual
- Basic 6.0 CD, 您可以在\Tools\LPK_TOOL 目錄下找到它。
- 下面是對象標記的例子:
- <OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
- <PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
- </OBJECT>
- -->
- <OBJECT ID="test"
- CLASSID="CLSID:7E0ED402-E1D4-4E40-95C2-FEA17B4FA60E"
- CODEBASE="test.CAB#version=1,0,0,1">
- </OBJECT>
其中上面注釋掉的lpk這段根據(jù)他的描述生成了相應的lpk文件,將代碼放到j(luò)sp頁面中,部署。
2,部署后查看測試效果,但是效果不盡如人意,提示“非安全控件”而且也無法安裝,這是由于控件沒有認證,認證還是需要花錢的,自然不行。
3,只能通過本地注冊控件的方式,這樣就不需要ie的認證,但是控件提示的信息也是“無法識別的控件”。
4,使用installshield9來制作客戶端注冊包,具體的不說了只要注意一個個問題。注冊控件的腳步
- function OnEnd()
- string szDLL, szReg, szCmd;
- begin
- szReg = WINSYSDIR ^ "regsvr32.exe";
- szDLL = TARGETDIR ^ "test.ocx"; //如果是MSI工程,可以用INSTALLDIR代替TARGETDIR
- szCmd = "/s \"" + szDLL + "\""; //增加靜默參數(shù)s, 增加 \” 防止目錄路徑含空格的情況。
- if (!REMOVEONLY) then
- LaunchAppAndWait(szReg, szCmd, WAIT);
- endif;
- end;
這樣注冊后,客戶端使用就不會有提示,我上面提到了,我自己生成了lpk文件,我也加到頁面中了。
- <OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
- <PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
- </OBJECT>
但是如果加這句雖然控件可以使用,但是總會有安全提示,很影響使用效果。所以暫時把它去掉了。
posted on 2012-02-29 09:03 agun 閱讀(364) 評論(0) 編輯 收藏 所屬分類: 其他