本文主要介绍怎么在.NET环境下开发OCX控件,打包安装部署程序,以及怎么在页面上调用控件。


开发

1、新建一个类库,然后打开类库的属性,应用程序→程序集信息

2、编辑程序集信息,主要是要把底部的 使程序集COM可见 勾上,点确定保存程序集信息

3、在类库的属性面板上选择 生成,拉到底部把 为COM互操作注册 勾上

4、在.NET下面开发OCX需要实现IObjectSafety接口,接口名称以及下面的GetInterfaceSafetyOptions和SetInterfaceSafetyOptions不要动

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;namespace Test
{[Guid("84D0FC9A-DAB8-4620-B687-B3F9C950F2C8")][InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]interface IObjectSafety{void GetInterfaceSafetyOptions(ref Guid riid, out  int pdwSupportdOptions, out int pdwEnabledOptions);void SetInterfaceSafetyOptions(ref Guid riid, int dwOptionsSetMask, int dwEnabledOptions);}
}

5、输出class实现IObjectSafety后,它里面的方法就可以在页面上使用了

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Windows.Forms;namespace Test
{[Guid("A79BF51F-D2E5-443A-BE7E-E7138FMEEFFB")]public class TestOCXMain : IObjectSafety{public void GetInterfaceSafetyOptions(ref Guid riid, out  int pdwSupportdOptions, out int pdwEnabledOptions){pdwEnabledOptions = 2;pdwSupportdOptions = 1;}public void SetInterfaceSafetyOptions(ref Guid riid, int dwOptionsSetMask, int dwEnabledOptions){}/// <summary>/// 页面调用方法,执行代码/// </summary>/// <param name="str"></param>public void Main(string str){MessageBox.Show("你传给我的str : " + str);}}
}

打包

把程序打包成一个安装文件,在需要使用控件的客户端安装控件,就可以使用控件的功能了。

1、在解决方案下面添加一个安装部署项目,如图(因为我的VS2013没有安装这个东东,所以就只能用VS2010顶替一下)

2、选中项目,右键→添加 项目输出→选择输出主项目,确定

3、生成项目,在项目文件夹下面的Debug文件夹下面的.msi文件就是安装文件了。


使用

双击.msi文件,一直跑完就好。
页面上调用控件的方法:根据我们在程序中给定的GUID,在页面上添加<OBJECT id="TestOCX" classid="clsid:A79BF51F-D2E5-443A-BE7E-E7138FMEEFFB" style="width:0px;height:0px;display:none"></OBJECT>,然后js获取这个对象就可以直接调用它的方法了。

如果调用的时候,提示对象属性不存在,或者其他的,需要添加可信站点,并且需要启用OCX控件。

.NET OCX开发相关推荐

  1. VS2010下ocx开发三部曲

    目录 一.用C++ MFC ActiveX开发简单的ocx控件 二.在C#程序中调用ocx控件 三.在Web页面中调用已实现的ocx控件 四.OCX.COM的区别以及C++.C#和VB开发的组件的区别 ...

  2. VS2010下ocx开发:(2)在C#程序中调用ocx控件

    在本文中,给出一个C#示例程序,调用上一篇博文中创建的MultiplyDemo.ocx控件.注意需要保证该控件已经注册过. 启动Visual Studio 2010,使用C#创建一个Windows窗体 ...

  3. 远程桌面协议 (RDP)

    远程序桌面登录的.NET开发,可以使用MSTSCLib.dll和MsTscAxWrapper.dll两个转换过的动态库,而无需使用WINDOWS自带的OCX,因为使用OCX开发可以会遇到其它问题. 主 ...

  4. 疯狂的程序员-第二十八章

    一般情况下人在什么情况下喝酒?多半朋友聚会聊到兴奋了,或者发生了什么刺激人的大事,比如恋爱了,失恋了,发财了,破产了-- 绝影想这么晚了,又没有什么聚会,BOSS Liu找自己喝酒,肯定是受了什么刺激 ...

  5. java知识体系介绍

    国内最牛七星级团队马士兵.高淇等11位十年开发经验专家录制 目 录 百战程序员Java1573题 2百战程序员介绍 3JavaSE编程基础 9第一章 初识Java 9阶段项目课程1 11第二章 数据类 ...

  6. VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

    VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程 开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是 ...

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

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

  8. DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决

    公司一个大型的项目中使用了 DELPHI 来开发 OCX 控件做数据库的管理,但是GIS图形系统使用 MFC 开发,最后将 OCX 嵌入到 MFC 程序中作为一个完整的系统交付用户使用,但是在使用过程 ...

  9. 一篇介绍VC开发OCX的文章,写得太棒了!!!

    From: http://www.cnblogs.com/gengaixue/archive/2010/08/13/1799112.html VC2005从开发MFC ActiveX ocx控件到发布 ...

最新文章

  1. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(配置数据点抖动显示jitter)实战
  2. 使用JavaScript在文本框中的Enter键上触发按钮单击
  3. java:合并两个排序的整数数组A和B变成一个新的数组。新数组也要有序。
  4. linux内核剖析(八)进程间通信之-管道
  5. iPad的无纸化办公和纯纸化办公的区别和使用场景
  6. 适合0基础的web开发系列教程-换行和水平线
  7. 【刷题】BZOJ 2125 最短路
  8. micropython esp8266教程_ESP8266 快速开发指南
  9. mysql case when 解释_mysql 语法一 :case when详解
  10. Knowladge_网站学习_jQuery插件
  11. 多迪技术总监告诉你:学习Python语言有哪些就业方向?
  12. 人物抠图(Photoshop技巧系列)
  13. 设计一个简单的家乡网站
  14. 土建类技术质量知识题库
  15. 苹果手机HTML页面滑动卡顿
  16. 四分位数计算方法总结
  17. 2021-2027全球与中国工业自动化定位传感器市场现状及未来发展趋势
  18. 多项式根的因式分解理论.
  19. 微信公众号(服务号/订阅号/小程序)注册详细流程
  20. linux sftp创建多用户,Linux 下创建 sftp 用户并限定目录

热门文章

  1. APP瘦身大法--AndResGuard的使用
  2. 用html制作编写静态日志,[译] 编写一个小型静态网站生成器
  3. as转html5工具,HTML5 Convas APIs方法详解
  4. 几种媒体文件(MediaPlayer,Realplay,QuickTime)的调用代码
  5. 海康威视SDK控制台程序consoleDemo将实时码流保存为视频文件mp4
  6. UE4 蓝图学习 FlipFlop
  7. jsp页面如何调用本机的应用程序?例如c:/netterm.exe?(转载)
  8. Discuz数据库调用:DZ模板调用常用代码手册
  9. 计算机软件投资所得税减免,个人以计算机软件著作权增资可以享受延迟纳个税的优惠吗...
  10. 大型网站架构演进历程