C#实现一个ActiveX控件
作者:网络转载 发布时间:[ 2014/1/8 9:42:23 ] 推荐标签:ActiveX 控件
要使用C#实现一个ActiveX控件,需要解决三个问题:
1.使.NET组件能够被COM调用
2.在客户机上注册后,ActiveX控件能通过IE的安全认证
3.未在客户机上注册时,安装包能通过IE的签名认证
本程序的开发环境是.NET Framework 3.5,工具是Visual Studio .NET 2008,在安装.NET Framework 3.5的客户机上通过测试。
下面是实现步骤:
(一)创建可从COM访问的程序集
首先实现一个对COM可见的程序集,创建类库工程,AssemblyInfo.cs应包含:
using System.Runtime.InteropServices;
//使此程序集中的类型对COM组件可见
[assembly: ComVisible(true)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("94882155-3B7C-48e3-B357-234D56D8F15E")]
加入以下代码到AssemblyInfo.cs确保程序集的可访问性:
using System.Security;
[assembly: AllowPartiallyTrustedCallers()]
注意上面的Guid,如果程序集内部的类未标注Guid,COM注册的Guid是会新生成的,此处的Guid没有作用。
创建用户控件(自定义类待测)IdentityKey.cs,加入:
using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace KeyActiveX
{
[Guid("94882155-3B7C-48e3-B357-234D56D8F15E")]
public partial class IdentityKey : UserControl
{
}
}
这里的Guid和AssemblyInfo.cs一样,它会在COM注册中成为CLSID并被html以clsid调用。
类库工程属性中,选择生成,勾选COM注册,在html文件中加入
<object id="controlbyid" classid="clsid:{94882155-3B7C-48e3-B357-234D56D8F15E}" ></object>
在IE中启用不安全控件,查看html页面,应能访问到控件,现在一个在发布时对COM注册的程序集开发完成了。
使用OLE/COM Object Viewer(安装VC自带)可以在.NET Categories中查看组件和CLSID。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11