一、新建项目—>类库,取名:ActiveXDemo

二、右键项目属性:应用属性==>程序集信息=>使程序集Com可见,
生成==>输出==>为com互操作注册;新建接口类取名:IObjectSafety
直接复制代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;//引入命名空间namespace ActiveXDemo
{//[Guid("08B1EA29-0A20-46BE-8EE0-16A7505A317C")]//[ComImport, GuidAttribute("08B1EA29-0A20-46BE-8EE0-16A7505A317C")][ComImport, GuidAttribute("CB5BDC81-93C1-11CF-8F20-00805F2CD064")][InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]public interface IObjectSafety{[PreserveSig]int GetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions, [MarshalAs(UnmanagedType.U4)] ref int pdwEnabledOptions);[PreserveSig()]int SetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] int dwOptionSetMask, [MarshalAs(UnmanagedType.U4)] int dwEnabledOptions);}
}

三、为控件创建GUID:工具→创建GUID,选5,点击复制

     #region IObjectSafety 接口成员实现(直接复制)private const string _IID_IDispatch = "{00020400-0000-0000-C000-000000000046}";private const string _IID_IDispatchEx = "{a6ef9860-c720-11d0-9337-00a0c90dcaa9}";private const string _IID_IPersistStorage = "{0000010A-0000-0000-C000-000000000046}";private const string _IID_IPersistStream = "{00000109-0000-0000-C000-000000000046}";private const string _IID_IPersistPropertyBag = "{37D84F60-42CB-11CE-8135-00AA004BB851}";private const int INTERFACESAFE_FOR_UNTRUSTED_CALLER = 0x00000001;private const int INTERFACESAFE_FOR_UNTRUSTED_DATA = 0x00000002;private const int S_OK = 0;private const int E_FAIL = unchecked((int)0x80004005);private const int E_NOINTERFACE = unchecked((int)0x80004002);private bool _fSafeForScripting = true;private bool _fSafeForInitializing = true;public int GetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions, [MarshalAs(UnmanagedType.U4)] ref int pdwEnabledOptions){int Rslt = E_FAIL;string strGUID = riid.ToString("B");pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA;switch (strGUID){case _IID_IDispatch:case _IID_IDispatchEx:Rslt = S_OK;pdwEnabledOptions = 0;if (_fSafeForScripting == true)pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER;break;case _IID_IPersistStorage:case _IID_IPersistStream:case _IID_IPersistPropertyBag:Rslt = S_OK;pdwEnabledOptions = 0;if (_fSafeForInitializing == true)pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA;break;default:Rslt = E_NOINTERFACE;break;}return Rslt;}public int SetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] int dwOptionSetMask, [MarshalAs(UnmanagedType.U4)] int dwEnabledOptions){int Rslt = E_FAIL;string strGUID = riid.ToString("B");switch (strGUID){case _IID_IDispatch:case _IID_IDispatchEx:if (((dwEnabledOptions & dwOptionSetMask) == INTERFACESAFE_FOR_UNTRUSTED_CALLER) && (_fSafeForScripting == true))Rslt = S_OK;break;case _IID_IPersistStorage:case _IID_IPersistStream:case _IID_IPersistPropertyBag:if (((dwEnabledOptions & dwOptionSetMask) == INTERFACESAFE_FOR_UNTRUSTED_DATA) && (_fSafeForInitializing == true))Rslt = S_OK;break;default:Rslt = E_NOINTERFACE;break;}return Rslt;}#endregion}
}

四、制作成安装文件
新建项目——其他项目类型——安装和部署——安装项目


五、右键安装项目——添加——项目输出


将我们的项目ActiveXDemo设为主输出;
主输出文件上右键——属性;将Register属性设为vsdrpCOM;

重新编译安装项目,打开安装项目所在目录,双击setup.exe文件或ActiveXDemoSetup.msi文件可以将浏览器插件安装到你的电脑;

六、使用ActiveX插件
新建一个Web项目或者一个Html文件,在需要使用浏览器插件的页面上加入以下代码:
其中classid是新建的GUID编码

<body><object id="csharpActiveX" classid="clsid:08B1EA29-0A20-46BE-8EE0-16A7505A317C" width="100" height="150"></object><!--<object classid="clsid:08B1EA29-0A20-46BE-8EE0-16A7505A317C" codebase="bin/setup.exe"width="200" height="40" id="helloBossma"></object>--><form id="form1" runat="server"><div><input type='button' onclick='csharpActiveX.Test()' value='我是按钮' /></div></form>
</body>
<script type="text/javascript">var objCard = document.getElementById("csharpActiveX");if (objCard.object == null) {alert("csharpActiveX插件未安装!");}else {alert("已检测到csharpActiveX插件!");}
</script>

运行如下:

IE浏览器安装Activex插件相关推荐

  1. 惊!最靠谱的谷歌与edge浏览器安装扩展插件方法

    谷歌与edge浏览器安装扩展插件 谷歌浏览器安装扩展插件 Edge浏览器安装扩展插件 注意 谷歌浏览器安装扩展插件 1.在浏览器地址栏中输入: chrome://extensions/ 2.打开开发者 ...

  2. ubuntu下opera浏览器安装Flash插件

    ubuntu下opera浏览器安装Flash插件 sudo apt-get install pepperflashplugin-nonfree sudo update-pepperflashplugi ...

  3. ie11加载java插件_IE浏览器中ActiveX插件的使用

    在某些行业的B/S应用系统中会不可避免的要用到ActiveX浏览器插件,而ActiveX插件只能在IE内核浏览器中运行,而常用的IE浏览器的版本众多,从IE6到IE11,总共有6个版本,这就给开发的应 ...

  4. Linux 火狐浏览器安装Flash插件

    Linux系统安装完毕后,发现火狐浏览器视频播放不了而且总是提示安装Flash.而按火狐浏览器上的提示Flash插件安装总是失败,木有办法只能手动安装Flash插件啦. 到Flash官网:http:/ ...

  5. Chrome浏览器安装本地插件

    大多数情况我们的网络状态都不会允许我们这么做的(毕竟翻墙是一件危险有麻烦的事情),那么用户只能通过在其他网站上下载(如:Chrome插件网)来获得Chrome插件的离线安装版(扩展名为.crx的文件) ...

  6. chrome、firefox浏览器安装hackbar插件

    一.Chrome安装hackbar 1.打开chrome,选择设置 2.点击"扩展程序" 3.打开开发者模式 4.将crx格式的插件拖进去 5.选择"添加扩展程序&quo ...

  7. 常用浏览器安装代理插件(SwitchyOmega)

    背景:因工作需要切换代理网络,又不想每次都修改系统的全局代理,则通过浏览器插件切换. 1 常用浏览器安装插件 1.1 360浏览器 https://ext.se.360.cn/webstore/sea ...

  8. 浏览器安装Copper插件

    Copper是最容易使用的CoAP客户端工具,之前本来是Firefox浏览器的一个插件,但是后来,不知道为什么,就不能使用了,即使浏览器使用52.0版本的火狐,仍然在插件中找不到Copper的身影,但 ...

  9. edge浏览器安装chrome插件

    在安装chrome插件时,大家的方法都是要选择"加载已解压的扩展程序",但是我在edge中就找不到这个按钮,后来终于发现了解决办法. 要把这个开发人员模式打开: 这样就出来了: 哈 ...

最新文章

  1. windows 2008 引导故障实录
  2. Linux信号量之内核信号量
  3. 自组网中继台_同频自组网基站
  4. C/C++编程知识分享:C++ 手把手教你实现可变长的数组
  5. android 事件参数传递,android-databinding – 使用android DataBinding库如何将参数传递给绑定事件...
  6. sqlserver 时间递增循环
  7. 以太坊可更新智能合约研究与开发综述
  8. docker网络配置详解
  9. 学习PetShop3.0(9)工厂的资料
  10. 怎么判断前轮左右的位置_老司机教你如何用方向盘,判断左右车轮位置,新手司机一看就会!...
  11. ajax保持会话,Ajax请求会话过期处理(JS)
  12. linux mint 安装ssh
  13. 波形垫片弹性系数计算_波形弹簧的特点介绍
  14. 5分+细胞器基因组好文!多线南蜥线粒体基因组及比较基因组研究
  15. Android端轻量级远程JDBC库remote-db
  16. 如何定制zencart模板
  17. 数字化浪潮下 哪些银行业务或“生变”
  18. 【总结】手机图片预览插件photoswipe使用总结
  19. “血战”户用光伏之一:市场需求在哪里?
  20. java系统开发注意事项

热门文章

  1. windows、linux操作系统下载地址
  2. CSS3--通过Animation实现简单的手指点击动画
  3. Simulink快速入门:如何搭建仿真模型——以双向直流变换器为例(附模型)
  4. 3.4 常用类库-多线程
  5. LMS Virtual.Lab二次开发:声学仿真结果导出方法(VBScript、Python)
  6. 大众集团成功研发:可移动的电动汽车充电器,网友:太方便了
  7. 毕业设计-基于深度学习的图像去雾算法
  8. 经验正交函数 (EOF) / 主成分 (PCA) 分解及Python实现
  9. IntelliJ IDEA修改项目名字
  10. Android P中的AVB校验(二)