随笔 - 49  文章 - 2  评论 - 426 

在前面我们已经完成了ActiveX控件的开发,接下来的就是发布它了。

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

下一步,我们改动项目属性,将引导程序更改为 Web引导程序。很遗憾的是,在 Web引导程序设置 中的安装文件夹URL中必须使用绝对路径,不能使用相对路径。这意味着生成安装程序的时候就必须确定路径,不是很方便。在示例中,我使用了localhost,在发布中可以改为实际的域名。

    现在我们生成安装程序,并把相应得程序拷贝到正确的目录中(本例中为默认网站目录下的ActiveX文件夹中)。我们可以直接执行Setup.Exe文件,以验证安装文件的正确性。在我的机器上正确执行了,成功了!

 

    现在我们又要重新改动helloworld.htm文件了。修改后的结果如下:

<body bgcolor='#223344'>

<object id="helloworld"

   classid="clsid:9551B223-6188-4387-B293-C7D9D8173E3A" Width="184" Height="96" codebase="ActiveX/Setup.Exe"

> 

</object>

<br>

<input type='button' onclick='helloworld.ShowMessage("Hello World!")' value='Click'>

</body>

注意,我们在object块中加入了codebase属性,这就是制定的下载控件的位置,可以使用相对路径。别忙,我们现在还不能正确请求这个页面,因为我们还没有对我们的控件进行签名。签名可以采用两种方式,一种是在上面生成安装程序的时候签名,另一种是使用sn.exe签名。推荐大家使用后者,因为可以提供更多选项。本人很懒,就不多写了,大家可以参考csdn上的文章《发布ActiveX。先给给大家提个醒,在申请证书的时候选择 高级证书申请。

 

       至此,《用C#编写ActiveX控件》完结。大家有什么问题,可以和我留言。 

       NEW:源码下载

红马天下 版权所有
博客:http://homer.cnblogs.com/
欢迎转载,但转载必须注明作者和出处。

posted on 2005-01-26 21:07 红马天下 阅读(25405) 评论(59)  编辑 收藏 网摘 所属分类: Asp.Net

  回复  引用  查看    
2005-01-27 10:11 | 水云间      
这种方法很不错哟,我得先试一下,感谢先!但有个不足的地方就是客户端还是会出现安装界面,还要点下一步,等操作,最好能做成后台安装的模式就好了。呵呵!学习中。。。。
  回复  引用  查看    
2005-01-27 10:51 | Lion      
这一系列的文章很好....
  回复  引用    
2005-02-12 17:26 | yeetins
红马天下,能不能给个邮箱,有些具体的问题想交流一下

这是我的:justinme@tom.com 直接给我发邮件也可以,谢谢了

  回复  引用    
2005-02-15 10:54 | zhangqiwu
按你说的,我做成你了activex dll,并且在本地是可以完全执行的!
我将html文件,dll文件拷贝到安装有NET Framework Version 2.0 Redistributable Package.exe的电脑上,为什么不能显示activex空间呢?

  回复  引用    
2005-02-15 10:57 | zhangqiwu
像VB开发的那些activex dll的注册方法行不通!
像这样子的dll文件在电脑上如何注册呢?

  回复  引用    
2005-02-15 11:05 | zhangqiwu
这样的Dll好像还不能被一些支持传统activex dll的软件所支持啊!
  回复  引用    
2005-03-07 15:28 | mxf
1和2在哪里
  回复  引用    
2005-04-11 14:34 | linuxyf
为什么客户端调用的时候得安装啊,不能直接调用dll文件吗?


  回复  引用    
2005-04-11 14:36 | linuxyf
发布的时候,能不能直接发布成dll格式的,以后调用的时候不用安装的啊?
  回复  引用  查看    
2005-06-27 09:19 | 福星人      
如果客户端都要装.net 那就一点意思的没了
  回复  引用  查看    
2005-06-27 10:09 | 红马天下      
这只是一种思路,有时候说不定能帮你。其实要装framework问题也不大吧,为什么大家能容忍applet要装虚拟机,而不能容忍这样的ActiveX需要装framework呢?或许等longhorn普及了,将会更有用处。
  回复  引用    
2005-06-27 13:40 | DrkBreeze
我想说 用 regsvr32 无法注册该DLL ,我如果想移植到其他服务器上,无法注册还是不能用
  回复  引用    
2005-07-13 09:41 | lchq_pq[未注册用户]

如果在ActiveX控件中要调用API,请问该怎么做啊??

  回复  引用  查看    
2005-07-25 15:58 | 命运有自己的梦!      
请问ActiveX怎样和服务器端交互?
  回复  引用    
2005-08-22 21:41 | 郑小兰[未注册用户]
苛刻
  回复  引用    
2005-12-20 17:49 | colin[未注册用户]
我按照上面的成功實現,但是注冊的時候怎麼使用程序注冊這個控件呢?使用.net語法?望樓主大哥多多指教
  回复  引用    
2006-03-30 23:55 | d[未注册用户]
;;
  回复  引用    
2006-03-30 23:55 | d[未注册用户]
;oijoi
  回复  引用  查看    
2006-04-08 11:30 | S.Sams      
我想知道,C# ActiveX 如何和Javascript通讯
即如何调用Javascript的函数!

  回复  引用    
2006-04-19 16:36 | xieqi[未注册用户]
我下载了源码,只生成了HelloWorld.dll,但Setup.Exe再哪里啊?,没有看到啊!!
  回复  引用    
2006-04-19 16:37 | xieqi[未注册用户]
我下载了源码,只生成了HelloWorld.dll,但Setup.Exe再哪里啊?,没有看到啊!!
  回复  引用    
2006-06-21 17:04 | goodSmile[未注册用户]
我下载你的源码,在我的机器调试上可以,别人访问的话就出不来了,客户端也安装了.net framework
  回复  引用    
2006-06-22 15:10 | nfsuperman[未注册用户]
这个例子其实是很有价值的,我也正准备将这个技术用在工作中,不过在发布的时候遇到了麻烦,哪位高人肯伸出援助之手吗?
nf_superman@163.com
Thanks

  回复  引用    
2006-06-22 15:46 | zzz[未注册用户]
请问一下,自定义的用户组件可以放在ActiveX控件吗?
  回复  引用    
2006-06-26 11:11 | yinzq[未注册用户]
我想在控件中调用xml Web service 但是在客户端要求安装IIS,这是为什么,如何解决,敬请指点
  回复  引用    
2006-06-28 17:51 | nfsuperman[未注册用户]
我也跟你一样在控件中调用xml Web service ,
有兴趣的话交流下吧
nf_superman@163.com

  回复  引用    
2006-10-19 22:25 | zahot[未注册用户]
这不能叫ACTIVEX控件,应该叫FORM组件(控件),最后的安装是多余的,.NET平台程序集(包换组件、控件)可以直接寄宿在IE里,而且此控件的权限只使用了部分受信任的代码权限,如果要安装的话倒时可以考虑发布安全策略。本人MSN:ZAHOT@MSN.COM可以交流
  回复  引用    
2007-03-20 09:18 | 愁愁愁愁[未注册用户]
强烈关注续集,有没有相关I/O操作的实例,比如在客户端读取磁盘、端口、调用外设的?
  回复  引用    
2007-04-10 21:40 | babeway[未注册用户]
如果客户要安装框架,那么程序做得再漂亮也不过是winform的样子。既然客户需要装框架,那么和C/S程序有什么区别呢!
  回复  引用    
2007-04-18 12:52 | fengziyoyo[未注册用户]
我按照上面的方式,在ie7下,插件能显示,但是为什么调用里面的事件没有反应?我实在本地都没有实现。
忘指教

  回复  引用    
2007-04-18 13:20 | RUN[未注册用户]
传统的activex控件可以在word等应用程序中使用,这种c#写的activex控件如何用regsvr32注册?如何在word等应用程序中使用呢?
  回复  引用    
2007-08-05 14:47 | 艾山[未注册用户]
谢谢你!
  回复  引用    
2007-08-08 20:59 | ccimage[未注册用户]
按照作者的办法,安装部署 运行都没有问题。最大的弊端就是要装framework。还有,希望作者能写一下如何控制页面脚本。(被页面脚本控制已经实现了)。
  回复  引用    
2007-08-08 21:00 | ccimage[未注册用户]
传授传授给我这样的菜鸟 呵呵
  回复  引用    
2007-08-17 15:35 | marion[未注册用户]
说实话 不是很明白
  回复  引用    
2007-09-16 11:04 | lj_lt[未注册用户]
vs2005做的控件VB6下使用,输入汉字为什么是乱码?
比如说vs2005的textbox,combo
在VB下使用
输入汉字,显示是乱码
复制,粘贴到上面没问题
奇怪了

  回复  引用    
2007-10-10 21:13 | bbqq[未注册用户]
希望继续交流.....
  回复  引用    
2007-10-10 21:15 | bbqqw[未注册用户]
用C#编写ActiveX控件(三) 下一步,我们改动项目属性,将引导程序更改为Web引导程序。很遗憾的是,在Web引导程序设置中的安装文件夹URL中必须使用绝对路径,不能使用相对路...

  回复  引用    
2008-06-25 14:13 | 义乌货代公司 [未注册用户]
宁波贷款
宁波贷款公司
宁波抵押贷款
融资贷款
抵押贷款
个人信用贷款
房产抵押贷款
企业抵押贷款
中小企业无抵押贷款
按揭房再贷款(加按揭、转按揭)
二手房买卖贷款
信用证融资贷款
机械设备按揭贷款
担保贷款
短借贷款


宁波贷款
宁波贷款公司
宁波抵押贷款
融资贷款
抵押贷款
个人信用贷款
房产抵押贷款
企业抵押贷款
中小企业无抵押贷款
按揭房再贷款(加按揭、转按揭)
二手房买卖贷款
信用证融资贷款
机械设备按揭贷款
担保贷款
短借贷款

  回复  引用  查看    
2008-10-13 15:24 | ruolinzhanyuan      
老兄,我的VS2005运行不了啊?能弄个VS2005的不?可以的话发个VS2005的给我,谢谢啦:邮箱:ruolinzhanyuan@yahoo.com.cn
  回复  引用    
2008-11-19 16:39 | 风采[未注册用户]
在本地可以一切都OK,可是别人访问我机器就不行可以安装,就是不显示内容只有一个红X。还请红马天下指导。
  回复  引用    
2008-11-19 17:05 | 风采[未注册用户]
在本地可以一切都OK,可是别人访问我机器就不行可以安装,就是不显示内容只有一个红X。还请红马天下指导。
我的邮箱 Objectjiajia@Gmail.com QQ:215195759

  回复  引用    
2008-12-30 14:42 | Alan_pft[未注册用户]
在本地可以一切都OK,可是别人访问我机器就不行可以安装,就是不显示内容只有一个红X。还请红马天下指导。
QQ:179633741

  回复  引用  查看    
2008-12-30 22:46 | 张锐      
哥们,可以不可以问下你,你这样用C#开发的ActiveX控件能够做以下两点:
1.能够自动提示客户端下载?
2.能够自动调用activeX控件中的方法。
条件都是在IE7.0的默认安全设置下
如果能够实现上面两点,那还不错,不然在实际运用中,会不现实。
如:不可能要求客户降低IE的安全设置来使用你的activeX控件.

  回复  引用    
2009-01-08 10:29 | Alan_pft[未注册用户]
已经发布了,也生成SETUP了,在其他机子也可以访问了,也可以安装了,安装好后ActiveX那里还是个红叉,为什么不行?谁的可以别台电脑访问成功,望指点一二,感激不尽!
QQ:179633741

  回复  引用    
2009-01-08 10:30 | Alan_pft[未注册用户]
邮箱:179633741@qq.com
  回复  引用    
2009-01-08 13:38 | Alan_pft[未注册用户]
即使只把.htm和.dll 两个文件拿到其他电脑上,在其他电脑本机运行IIS都出不来,这是什么情况呢?GUID我已经设置了,为什么在编写的第一个电脑上可以运行,拿去其他机子就不行呢.....
  回复  引用    
2009-01-23 23:01 | hanhuaguo[未注册用户]
.htm和.dll 两个文件copy到其它机器肯定不得行,因为没有注册(写注册表).用以上那个setup.exe安装就注册了.本人已经按楼主的方法实现,但还是有问题如下:
1,当第一次开浏览器时能显示,一切正常,但刷新一下或点其它页面(这个页面也有同一个控件)就不行了.显示红叉.请问是什么问题?
2,以上虽然实现了,但是是将网站设置为受信任站点才行的.是不是没有签名造成的呢?

  回复  引用    
2009-02-04 10:18 | Alan_pft [未注册用户]
我用一台电脑IIS,另一台来连,连上去后提示安装了,也成功的把DLL文件安装好了,但是还是显示红叉,但是IIS的那台自己上去在本机安装好后就可以显示了.为什么?
信任那些对于我来说都是次要的了,连正常显示都不行哎..

  回复  引用    
2009-03-16 11:41 | 叶小峰[未注册用户]
我发布后只显示一个红色的叉叉,是不是没有对这个控件进行签名的原因,怎么进行签名呢?请教一下!
  回复  引用    
2009-03-23 11:30 | 叶小峰[未注册用户]
请问一下,怎么和服务端进行交互呢?
  回复  引用    
2009-04-17 18:00 | hengh[未注册用户]
非常感谢 正需要这个 搜藏了
  回复  引用    
2009-05-05 13:53 | 非官方的[未注册用户]
如何与服务器端交互确实是个问题。。。



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 97822




相关文章:

相关链接: