在C#中相对应的是COM组件,编译后是dll而不是ocx。所以在C#中,在创建项目时只能创建类库项目。

下面我教大家如何一步一步来实现。

  • 以管理员的身份启动VS,我的是VS2015。新建类库DevControlColl,框架选择2.0即可。

  • 环境配置(勾选一下两个选项)

  • 对AssemblyInfo.cs进行编辑,修改相应的属性
    // 将false更改为true,自动生成的注释也做了说明[assembly: ComVisible(true)]  //新添加下面的属性。该属性要求引用System.Security [assembly: AllowPartiallyTrustedCallers()] // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID //[assembly: Guid("92eb428e-1894-4ca2-8e88-20fd0bb15ee5")]  //注释掉该属性要引用:using System.Security;
  • 定义IObjectSafety接口(无需修改,GUID不可修改)
    [Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]public interface IObjectSafety{  void GetInterfacceSafyOptions(System.Int32 riid, out System.Int32 pdwSupportedOptions, out System.Int32 pdwEnabledOptions);void SetInterfaceSafetyOptions(System.Int32 riid, System.Int32 dwOptionsSetMask, System.Int32 dwEnabledOptions);}
  • 为将发布控件设置GUID码
    [Guid("92eb428e-1894-4ca2-8e88-20fd0bb15ee5")]public partial class TreeList : UserControl, IObjectSafety// 实现如下public void GetInterfacceSafyOptions(int riid, out int pdwSupportedOptions, out int pdwEnabledOptions){pdwSupportedOptions = 1;  //不要修改该代码pdwEnabledOptions = 2;    //不要修改该代码return;}public void SetInterfaceSafetyOptions(int riid, int dwOptionsSetMask, int dwEnabledOptions){return;}

设计的空间UI如下:

  • 注册DevControlColl.dll

.NET自带的注册工具RrgAsm.exe工具,而且使用的注册工具版本一定要与开发框架版本一起发布的版本。

我写了两个简单的批处理。

注册:
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
RegAsm.exe G:\MyCode\comocx\DevControlColl\DevControlColl\bin\Debug\DevControlColl.dll
pause
注销:
cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
RegAsm.exe /u G:\MyCode\comocx\DevControlColl\DevControlColl\bin\Debug\DevControlColl.dll
pause

  • 做一个简单网页,将注册的空间嵌入。
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title></title>
</head>
<body><div style="margin:100px auto;border:1px solid #000;width:500px;height:500px;"><OBJECT ID="treeList" CLASSID="CLSID:92eb428e-1894-4ca2-8e88-20fd0bb15ee5"></OBJECT></div>
</body>
</html>

核心嵌入代码:

<OBJECT ID="treeList" CLASSID="CLSID:92eb428e-1894-4ca2-8e88-20fd0bb15ee5">

"92eb428e-1894-4ca2-8e88-20fd0bb15ee5"就是最开始的那个GUID码。

嵌入效果如下:

大功告成了。这只是开始,希望能给大家带来帮助。

C#开发ActiveX控件并应用于网页相关推荐

  1. [转]C#开发ActiveX控件,.NET开发OCX控件案例

    引自:百度   http://hi.baidu.com/yanzuoguang/blog/item/fe11974edf52873aaec3ab42.html 讲下什么是ActiveX控件,到底有什么 ...

  2. 使用C#开发ActiveX控件[Obsolete]

    附件下载(源代码+安装文件+教程) 0. 前言 ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中.使用ActiveX插件,可以轻松方 ...

  3. [转]使用C#开发ActiveX控件

    前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...

  4. C#开发Activex控件--与JavaScript的互调

    实现了ActiveX控件之后,在网页上的使用方式一般为: <object id="grid" classid="clsid:9661B223-6188-4849-B ...

  5. 使用C#开发ActiveX控件

    0. 前言 ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中.使用ActiveX插件,可以轻松方便的在 Web页中插入多媒体效果.交 ...

  6. (转)使用C#开发ActiveX控件

    本文转载自:http://www.cnblogs.com/yilin/archive/2009/09/15/1567332.html 附件下载(源代码+安装文件+教程) 0. 前言 ActiveX控件 ...

  7. 27.4.1 开发ActiveX控件

    本控件只是个示例,功能比较简单,共有三个方法,本别是获取当前个人存储区证书列表.获取指定证书.使用指定证书签名.在Windows下使用Visual C++ 6.0开发ActiveX控件的步骤如下所示. ...

  8. 使用C#开发ActiveX控件(新)

    前言 ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力.通常ActiveX控件都是 ...

  9. 开发ActiveX控件调用另一个ActiveX系列0——身份证识别仪驱动的问题

    程序员要从0下表开始,这篇是介绍这个系列的背景的,没有兴趣的人可以直接跳过. 为什么要开发ActiveX控件 由于工作需要,我们开发了一个网站,使用了一款身份证识别仪的网页ActiveX(OCX)插件 ...

最新文章

  1. Quartus II sof文件转 jic文件
  2. 网站互点排名掉了网站互点排名掉了网站互点_7天上百度首页排名优化技巧有哪些?...
  3. 欧拉函数/欧拉函数打表 lightoj1370(java/c++ )
  4. 『设计模式』电话接线员与中介者模式
  5. Azure 内容审查器之羞羞图审查
  6. 【转载】keil5中加入STM32F10X_HD,USE_STDPERIPH_DRIVER的原因
  7. matlab 数据是否符合正态分布的判断方法
  8. 易语言操作php文本文件,易语言对文本操作的步骤教学
  9. python中selenium打开浏览器拿不到url_Selenium打开浏览器,但在Chrome和Firefox中都无法获取URL...
  10. oracle plsql递归查询语句,oracle with 语句实现递归查询
  11. mysql 动态插入日期_mysql 如何动态传入一个时间得到此时间的某个时间点
  12. easymock接口模拟_EasyMock部分模拟
  13. 陕西网络培训学院自动学习简易脚本
  14. 魔兽世界稳定服务器,魔兽世界美服服务器趋于稳定 排队新技术将实装
  15. 帝国栏目导航点击显示不同样式的实现
  16. 将.fits数据转换为.png图像
  17. python写数学公式大全_数学公式书写
  18. 解决Excel 2010打开两个以上文件时,总只显示一个窗口
  19. 【论文阅读|深读】LINE: Large-scale Information Network Embedding
  20. 【Aegisub特效模板】纯白交响曲 OP 4种字体风格

热门文章

  1. macpro台式计算机,被工业设计震撼,Mac pro 垃圾桶升级
  2. Android下USB Accessory的实现分析 (一)--- AOA背景介绍
  3. 厉害了!教你如何在手机连上WiFi时仍然使用移动网络
  4. 《童梦奇缘-梦幻般的羁绊》第八章-殇变
  5. Gradle for Android 第一篇( 从 Gradle 和 AS 开始 )
  6. 开源项目-十六进制协议传感器自适应缩放曲线显示终端(百问网imx6ull 小熊派结合)...
  7. Visual Studio 2014 预览版 CTP3 发布了!可以下载
  8. sftp之概述、搭建、命令
  9. JavaScript 异常(例外)处理
  10. 小米创始人离职,背后这 3 点值得深思