决定一个人富有的三个条件,一是出身,二是运气,三是努力
If you can dream it,you can do it! Nothing Impossible~
posts - 145,comments - 245,views - 64万

开发环境为VS 2005, .NET framework 2.0


文件—>新建—>项目     

弹出下面对话框

选择Windows 控件库   输入名称TestControl    点击“确定”

在设计窗口中拖入控件 label1  timer  2个button  如下图:

 

1. COM的接口和类创建

COM 接口(Interface):IMonitor 

Code

 

COM 类(Class):Monitor 

Code

 

1)GUID 指定该类或者接口的GUID。

 

2)声明属性InterfaceType(ComInterfaceType.InterfaceIsDual),ComVisible(true),以支持register 和 unregister。

3)  IMonitor 是COM interface。C# 的COM Class 可以继承自COM interface 也可以不用interface.

2 实现IObjectSafety 接口

 

 

微软IObjectSafety 接口定义, GUID 为固定值, 一般不要修改,也可以重新生成GUID    在菜单栏   工具—>创建GUID

声明:

ObjectSafety

Code

 

Monitor实现:

Code

  

IObjectSafety 是一个接口,它可将其功能显露给 Internet Explorer的“设置脚本安全性”和“设置初始化安全性”安全特性。

3.注册和卸载

如果Class 声明中使用了 InterfaceType ,ComVisible(true) 属性,并且项目属性页设置 点击“生产”的 “为COM interop 注册” 项为TRUE,那么VS编译该项目可自动为Class注册。

也可以使用VS2005 自带工具 regasm.exe 手动注册和卸载 Class,可以用VS 自带工具oleview 查看是否注册成功


 

4.测试 以及调试

1)创建测试页面     解决方案右键 添加—>新建网站 Default.aspx

Code

 

2)将测试页面拷贝到localhost 的根目录(安装IIS,设置TestControl根目录    IIS配置详细步骤略过)

3) 可以开始调试

 

5.发布

 

1)建立一个windows安装项目,并将ActiveX控件的主输出添加到项目中。然后,改动ActiveX控件的主输出文件的属性,将其Register属性改为vsdrpCOM.

2)编译该项目并得到MSI 安装文件 ClassroomViewerControl.msi

3)创建并编写INF 文件 ClassroomViewerControl.inf

Code

 

 

4) 创建CAB 文件 使用CAB SDK 中的工具CABARC.EXE (下载地址 http://support.microsoft.com/kb/310618)

 

CABARC.EXE -s 6144 n  ClassroomViewerControl.cab ClassroomViewerControl.msi ClassroomViewerControl.inf

-s 6144:为签名留下6k的空间 n 创建cab

 

 

 

5) 签名,col.pfx 为密钥

 signtool sign /f col.pfx ClassroomViewerControl.cab

 

 

6) 修改WEB PAGE hello.html并将CAB 拷贝到codebase指定的URL

 

<object id="Monitor" classid="clsid:627AD403-FA50-4a08-B875-770520865DD6" Width="640" Height="360" codebase="http://localhost/TestControl/ClassroomViewerControl.cab"> </object>

6.最后看一下效果

安装隐藏了msi 安装界面,类似于cabarc 打包ocx 的效果(点击install 之后其他的都后台做了)

注意:IE中没有弹出.cab安装窗口   如下图:

这就需要设置IE的安全选项

IE浏览器里的  工具—>Internet 选项—>安全

点击“自定义级别” 弹出下列窗口

将ActiveX 控件和插件的相关选项都启用   点击“确定”

再次测试 如果弹出“Windows已经阻止此软件因为无法验证发行者”提示

点击“站点”

将 htt://localhost  和 http://10.122.89.28/  本机IP 添加进去

下面的复选框的勾去掉才能添加

 

如果大家还有其它CAB打包注册ActiveX的方法  欢迎能交流  共同学习 

 

posted on   ZEKELOVE  阅读(5298)  评论(29编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2009年3月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11

点击右上角即可分享
微信分享提示