VS2005自定义ActiveX控件在asp.net中应用方法
原文地址:http://www.cnblogs.com/zhf/archive/2009/03/02/1401299.html
开发环境为VS 2005, .NET framework 2.0
文件—>新建—>项目
弹出下面对话框

选择Windows 控件库 输入名称TestControl 点击“确定”
在设计窗口中拖入控件 label1 timer 2个button 如下图:

1. COM的接口和类创建
COM 接口(Interface):IMonitor
Code
COM 类(Class):Monitor
Code
1)GUID 指定该类或者接口的GUID。
2)声明属性InterfaceType(ComInterfaceType.InterfaceIsDual),ComVisible(true),以支持register 和 unregister。
3) IMonitor 是COM interface。C# 的COM Class 可以继承自COM interface 也可以不用interface.
2 实现IObjectSafety 接口
微软IObjectSafety 接口定义, GUID 为固定值, 一般不要修改,也可以重新生成GUID 在菜单栏 工具—>创建GUID
声明:
ObjectSafety
Code
Monitor实现:
Code
IObjectSafety 是一个接口,它可将其功能显露给 Internet Explorer的“设置脚本安全性”和“设置初始化安全性”安全特性。
3.注册和卸载
如果Class 声明中使用了 InterfaceType ,ComVisible(true) 属性,并且项目属性页设置 点击“生产”的 “为COM interop 注册” 项为TRUE,那么VS编译该项目可自动为Class注册。
也可以使用VS2005 自带工具 regasm.exe 手动注册和卸载 Class,可以用VS 自带工具oleview 查看是否注册成功

4.测试 以及调试
1)创建测试页面 解决方案右键 添加—>新建网站 Default.aspx
Code
2)将测试页面拷贝到localhost 的根目录(安装IIS,设置TestControl根目录 IIS配置详细步骤略过)
3) 可以开始调试
5.发布
1)建立一个windows安装项目,并将ActiveX控件的主输出添加到项目中。然后,改动ActiveX控件的主输出文件的属性,将其Register属性改为vsdrpCOM.

2)编译该项目并得到MSI 安装文件 ClassroomViewerControl.msi
3)创建并编写INF 文件 ClassroomViewerControl.inf
[version] signature="$CHICAGO$" AdvancedINF=2.0 [Setup Hooks] hook1=hook1 [hook1] run=msiexec.exe /i "%EXTRACT_DIR%\ClassroomViewerControl.msi" /qn
4) 创建CAB 文件 使用CAB SDK 中的工具CABARC.EXE (下载地址 http://support.microsoft.com/kb/310618)
CABARC.EXE -s 6144 n ClassroomViewerControl.cab ClassroomViewerControl.msi ClassroomViewerControl.inf
-s 6144:为签名留下6k的空间 n 创建cab
5) 签名,col.pfx 为密钥
signtool sign /f col.pfx ClassroomViewerControl.cab
6) 修改WEB PAGE hello.html并将CAB 拷贝到codebase指定的URL
<object id="Monitor" classid="clsid:627AD403-FA50-4a08-B875-770520865DD6" Width="640" Height="360" codebase="http://localhost/TestControl/ClassroomViewerControl.cab"> </object>
6.最后看一下效果
安装隐藏了msi 安装界面,类似于cabarc 打包ocx 的效果(点击install 之后其他的都后台做了)
注意:IE中没有弹出.cab安装窗口 如下图:

这就需要设置IE的安全选项
IE浏览器里的 工具—>Internet 选项—>安全

点击“自定义级别” 弹出下列窗口

将ActiveX 控件和插件的相关选项都启用 点击“确定”
再次测试 如果弹出“Windows已经阻止此软件因为无法验证发行者”提示

点击“站点”

将 htt://localhost 和 http://10.122.89.28/ 本机IP 添加进去
下面的复选框的勾去掉才能添加
VS2005自定义ActiveX控件在asp.net中应用方法的更多相关文章
- 网页中"IE限制网页访问脚本或ActiveX控件"的提示问题的解决方法
以前从来没有注意过"IE限制网页访问脚本或ActiveX控件"的提示问题,对于这个小细节问题,虽然感觉很别扭,但一直没考虑解决方法,今天才发现该问题可以轻松解决,以下做个小小记录. ...
- NeatUpload上传控件在asp.net中的使用
1.先导包,Brettle.Web.NeatUpload.dll导进web层中,再添加到vs控件中. 2.把NeatUpload文件夹放到根目录下. 3.直接拉要用到的控件到页面上,在使用 <U ...
- C# winform中自定义用户控件 然后在页面中调用用户控件的事件
下面是用户控件的代码: using System; using System.Collections.Generic; using System.ComponentModel; using Syste ...
- c# ActiveX 控件的开发
关于ActiveX控件的开发,网上很多例子,昨天也整整研究一天才捋顺了. 网上大部分例子都是js调用控件的方法,由于要实现在html页面"相应"控件的事件,整整折腾一天. 关键点在 ...
- MFC 之ActiveX控件学习
本文将介绍ActiveX控件的应用与工作原理,读者可以把ActiveX控件看成一个极小服务器的应用程序,它不能独立运行,必须要嵌入到容器程序中与容器一起运行,就像电脑主机中的显卡,它自己在电脑硬件系统 ...
- COM组件开发实践(八)---多线程ActiveX控件和自动调整ActiveX控件大小(下)
源代码下载:MyActiveX20081229.rar 声明:本文代码基于CodeProject的文章<A Complete ActiveX Web Control Tutorial>修改 ...
- [转]使用C#开发ActiveX控件全攻略
前言: 这段时间因为工作的需要,研究了一下ActiveX控件.总结如下: 先说说ActiveX的基本概念. 根据微软权威的软件开发指南MSDN(Microsoft Developer Network) ...
- ActiveX 控件漏洞挖掘之方法
ActiveX是微软公司提出,并在1996年被正式命名的组件技术.该技术提供了一种通用的开放程序接口,使用这种技术开发的ActiveX控件可以直接集成到IE浏览器或第三方应用程序中,但由于第三方编程等 ...
- MFC-[转]基于MFC的ActiveX控件开发
作者:lidan | 出处:博客园 | 2012/3/13 16:10:34 | 阅读22次 ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在VC ...
随机推荐
- 基于at91rm9200的i2c分析(DS1307实时时钟芯片)
board-ek.c 构造i2c_board_info结构体 static struct i2c_board_info __initdata ek_i2c_devices[] = { { ...
- [Usaco2006 Nov]Roadblocks第二短路
贝茜把家搬到了一个小农场,但她常常回到FJ的农场去拜访她的朋友.贝茜很喜欢路边的风景,不想那么快地结束她的旅途,于是她每次回农场,都会选择第二短的路径,而不象我们所习惯的那样,选择最短路. 贝茜所在的 ...
- 3D屏保:魔方2.0版本
一个三维魔方的屏保软件,可支持2级到72级的魔方.启动后魔方会自动旋转,并最终回到初始状态.有很多人问我这是怎么做到的,用的什么解魔方的算法,其实我自己根本就不会玩魔方,别人用技巧解魔方,我这程序中用 ...
- 第四章 四种List实现类的对比总结
1.ArrayList 非线程安全 基于对象数组 get(int index)不需要遍历数组,速度快: iterator()方法中调用了get(int index),所以速度也快 set(int in ...
- 同时启动多个Tomcat服务器
以下步骤能够同时启动两个tomcat:1.特别要注意:不要设置CATALINA_HOME 2.分别修改安装目录下的conf子目录中的server.xml文件: a.修改http访问端口(默认为8080 ...
- CI框架入门中的简单MVC样例
最简单的CI模型: 注意:模型须要用到数据库 配置文件在appcation/config.php 这里我们要用到数据库,须要将databases.php中的 相关參数填写一下,详细不再赘述. 直接进入 ...
- Discuz常见小问题-如何修改UCenter创始人密码
http://faq.comsenz.com/viewnews-925 参照上面这个帖子,把tools.php下载下来并放到uc_server目录下,打开文件,找到第10行设置一个初始工具箱密码 ht ...
- ios8 xcode6 下的启动界面设置和图标设置
IOS8 我试了网上不少设置启动动画的,不知道是不是我弄错了还是怎么的,反正启动不了,后来在code4论坛找到了这个: 启动屏幕:LaunchScreen.xib文件 桌面图标等相关app图片:Ima ...
- 跨站点脚本编制-XSS 描述及解决方法
跨站点脚本编制可能是一个危险的安全性问题,在设计安全的基于 Web 的应用程序时应该考虑这一点.本文中,描述了这种问题的本质.它是如何起作用的,并概述了一些推荐的修正策略. 当今的大多数网站都对 We ...
- -Prefix.pch has been modified 的错误修复
方法一: 选择 Product > Clean 然后重新编译--运行: 方法二: 找到-Prefix.pch文件,把中间的 #ifdef __OBJC__ #import <UIKit/U ...