IE浏览器安装Activex插件
一、新建项目—>类库,取名: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插件相关推荐
- 惊!最靠谱的谷歌与edge浏览器安装扩展插件方法
谷歌与edge浏览器安装扩展插件 谷歌浏览器安装扩展插件 Edge浏览器安装扩展插件 注意 谷歌浏览器安装扩展插件 1.在浏览器地址栏中输入: chrome://extensions/ 2.打开开发者 ...
- ubuntu下opera浏览器安装Flash插件
ubuntu下opera浏览器安装Flash插件 sudo apt-get install pepperflashplugin-nonfree sudo update-pepperflashplugi ...
- ie11加载java插件_IE浏览器中ActiveX插件的使用
在某些行业的B/S应用系统中会不可避免的要用到ActiveX浏览器插件,而ActiveX插件只能在IE内核浏览器中运行,而常用的IE浏览器的版本众多,从IE6到IE11,总共有6个版本,这就给开发的应 ...
- Linux 火狐浏览器安装Flash插件
Linux系统安装完毕后,发现火狐浏览器视频播放不了而且总是提示安装Flash.而按火狐浏览器上的提示Flash插件安装总是失败,木有办法只能手动安装Flash插件啦. 到Flash官网:http:/ ...
- Chrome浏览器安装本地插件
大多数情况我们的网络状态都不会允许我们这么做的(毕竟翻墙是一件危险有麻烦的事情),那么用户只能通过在其他网站上下载(如:Chrome插件网)来获得Chrome插件的离线安装版(扩展名为.crx的文件) ...
- chrome、firefox浏览器安装hackbar插件
一.Chrome安装hackbar 1.打开chrome,选择设置 2.点击"扩展程序" 3.打开开发者模式 4.将crx格式的插件拖进去 5.选择"添加扩展程序&quo ...
- 常用浏览器安装代理插件(SwitchyOmega)
背景:因工作需要切换代理网络,又不想每次都修改系统的全局代理,则通过浏览器插件切换. 1 常用浏览器安装插件 1.1 360浏览器 https://ext.se.360.cn/webstore/sea ...
- 浏览器安装Copper插件
Copper是最容易使用的CoAP客户端工具,之前本来是Firefox浏览器的一个插件,但是后来,不知道为什么,就不能使用了,即使浏览器使用52.0版本的火狐,仍然在插件中找不到Copper的身影,但 ...
- edge浏览器安装chrome插件
在安装chrome插件时,大家的方法都是要选择"加载已解压的扩展程序",但是我在edge中就找不到这个按钮,后来终于发现了解决办法. 要把这个开发人员模式打开: 这样就出来了: 哈 ...
最新文章
- windows 2008 引导故障实录
- Linux信号量之内核信号量
- 自组网中继台_同频自组网基站
- C/C++编程知识分享:C++ 手把手教你实现可变长的数组
- android 事件参数传递,android-databinding – 使用android DataBinding库如何将参数传递给绑定事件...
- sqlserver 时间递增循环
- 以太坊可更新智能合约研究与开发综述
- docker网络配置详解
- 学习PetShop3.0(9)工厂的资料
- 怎么判断前轮左右的位置_老司机教你如何用方向盘,判断左右车轮位置,新手司机一看就会!...
- ajax保持会话,Ajax请求会话过期处理(JS)
- linux mint 安装ssh
- 波形垫片弹性系数计算_波形弹簧的特点介绍
- 5分+细胞器基因组好文!多线南蜥线粒体基因组及比较基因组研究
- Android端轻量级远程JDBC库remote-db
- 如何定制zencart模板
- 数字化浪潮下 哪些银行业务或“生变”
- 【总结】手机图片预览插件photoswipe使用总结
- “血战”户用光伏之一:市场需求在哪里?
- java系统开发注意事项
热门文章
- windows、linux操作系统下载地址
- CSS3--通过Animation实现简单的手指点击动画
- Simulink快速入门:如何搭建仿真模型——以双向直流变换器为例(附模型)
- 3.4 常用类库-多线程
- LMS Virtual.Lab二次开发:声学仿真结果导出方法(VBScript、Python)
- 大众集团成功研发:可移动的电动汽车充电器,网友:太方便了
- 毕业设计-基于深度学习的图像去雾算法
- 经验正交函数 (EOF) / 主成分 (PCA) 分解及Python实现
- IntelliJ IDEA修改项目名字
- Android P中的AVB校验(二)