没有合适的资源?快使用搜索试试~ 我知道了~
首页使用C#开发ActiveX控件全攻略
使用C#开发ActiveX控件全攻略 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就是ActiveX近控件。ActiveX是Microsoft为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和JAVA applet功能类似。
资源详情
资源评论
资源推荐

10 月 16 日
使用 C#开发 ActiveX 控件全攻略(1)
前言:
这段时间因为工作的需要,研究了一下 ActiveX 控件。总结如下:
先说说 ActiveX 的基本概念。
根据微软权威的软件开发指南 MSDN(Microsoft Developer Network)的定义,ActiveX 插件以前
也叫做 OLE 控件或 OCX 控件,它是一些软件组件或对象,可以将其插入到 WEB 网页或其它应用程序中。
ActiveX 是 Microsoft 对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对
象模型(COM)。在有目录和其它支持的网络中,COM 变成了分布式 COM(DCOM)。在创建包括
ActiveX 程序时,主要的工作就是组件,一个可以自足的在 ActiveX 网络(现在的网络主要包括
Windows 和 Mac)中任意运行的程序。这个组件就是 ActiveX 近控件。ActiveX 是 Microsoft 为抗衡
Sun Microsystems 的 JAVA 技术而提出的,此控件的功能和 JAVA applet 功能类似。
目前支持 ActiveX 的主要是 IE 浏览器。
以前 ActiveX 开发普遍使用 VC++或 VB,随着 C#和.net 的发布,用 C#开发 ActiveX 控件变得更方
便、更简单。但需要注意的是用 C#开发的 ActiveX 控件需要客户机装有.net framework,有点郁闷。
可是相对.net 强大的功能良好的易用性,这点牺牲还是值得的,况且现在好多计算机已经安装有.net
framework 了。
其实.net 下的 winform 控件也是可以直接嵌入到 web 网页里的,但是由于.net 安全性的限制,无法
在客户端实现复杂的操作,比如磁盘空间操作和注册表操作。因为 ActiveX 控件是以本地用户的身份运
行,可以突破.net 安全性的限制,所以开发 ActiveX 控件还是很必要的。
C#写 ActiveX 控件的原理很简单,就是使用了.net 平台和 COM 的互操作性。修改项目属性的目的就
是将.net 控件注册为 com。这样,你就可以把这个控件完全当作 ActiveX 控件来对待了。比如,可以使
用 JS 和 VBS 来调用,也可以使用 C++来调用。
下面一步步来实现 C#写 ActiveX 控件。
第一部分:用 vs2008 制作一个 winForm 控件
用 vs2008 建立一个新的“windows 窗体控件库”命名为“WindowsFormsControlLibrary1”如下图
点击确定后,将 UserControl1.cs 更名为 demo.cs。向界面里添加一个 Labal、一个 TextBox 和一个
Button,相应的修改控件属性。如下图:

为 button1 添加 Click 事件,代码如下:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = textBox1.Text;
}
在 AssemblyInfo.cs 中引用 System.Security 命名空间,并添加一句:
[assembly:AllowPartiallyTrustedCallers()]
好,现在编译整个工程,生成\bin\Debug\WindowsFormsControlLibrary1.dll,我们的 winform
控件就做好了。
下面在解决方案里添加一个 web 应用程序的工程,名为 WebApplication1,用来测试我们的控件。
将 WindowsFormsControlLibrary1.dll 拷贝到 WebApplication1 所在的目录下。然后在
Default.aspx 里面加入“<object id="helloworld"
classid='http://localhost:59639/WindowsFormsControlLibrary1.dll#WindowsFormsControlLi
brary1.demo' width="184" height="96" >
</object>
ok,编译运行后你将看到如下界面:
第二部分:把这个 winForm 控件转换为 ActiveX 控件
到目前为止,我们所实现的只是 winform 控件,还不是真正的 ActiveX 控件。
鼠标右键,打开 WindowsFormsControlLibrary1 的工程属性,在“应用程序”里点击“程序集信息...”
显示如下界面:

选中“使程序集 COM 可见”,然后确定。
进入“生成”页面,如下图:
选中“为 COM 互操作注册”。
重新编译工程,这时 WindowsFormsControlLibrary1.dll 就变成了一个 ActiveX 控件。
我们使用 工具—〉OLE/COM 对象查看器 查看,如图:
WindowsFormsControlLibrary1.demo 已经被正确识别为 COM 组件。现在,我们已经可以像使用
其它 ActiveX 控件一样在网页中显示了。在 WindowsFormsControlLibrary1.demo 点击鼠标右键,选
择 Copy HTML <object> Tag to Clipboard,可以将代码拷入剪贴板。
我们在 Default.aspx 中粘贴剪贴板的内容,如下:
<object id="helloworld" classid="clsid:A82F92E1-BA7F-3B32-B389-584E8AB4441F"
width="184"
>
</object>
剩余10页未读,继续阅读













安全验证
文档复制为VIP权益,开通VIP直接复制

评论0