当前位置: 代码迷 >> .NET组件控件 >> 关于ActiveX控件在Web页面显示有关问题
  详细解决方案

关于ActiveX控件在Web页面显示有关问题

热度:551   发布时间:2016-05-04 23:31:42.0
【求助】关于ActiveX控件在Web页面显示问题
各位大牛们,这个问题真心困扰我很久了。。。。

我使用第三方控件a.ocx,用C#,自己制作了一个视频控件b.dll;

现在我想在页面上嵌入这个控件,达到实时观看视频的效果;于是我把这个b.dll控件打包成b.cab文件;

但是仍然是仅在我自己的电脑上可以观看到视频,在别人的电脑上都被IE拦截,无法安装,因为证书无法通过;

试过一下几个方法,但是貌似都不行。

一、制作安全控件,但是需要付费证书,这个不太可能实现

二、在客户端注册我自己开发的控件b.dll,但是会弹出错误信息:模块b.dll已加载,但找不到入口点DllRegisterServer.

三、直接使用第三方控件a.ocx,不作任何改动,客户端依然拦截

四、依然直接使用第三方控件a.ocx;在客户端做了下判断,是否已安装了此控件;若未安装,给出链接,下载某exe文件(我就是安装了这个exe文件,电脑上才出现a.ocx文件的),并安装;

但是依然会被IE拦截。

五、直接在客户端注册控件a.ocx,并且提示注册成功,依然拦截。

六、把服务器的IP设为可信站点,依然不好用

我已经在想不出其他的办法了。

想请问各位大牛,
1. 我上面说的几个问题里面 有没有可以改进,最后达到所有客户端都可下载控件的?

2. 客户端之所以不可以使用该控件,是不是因为这个控件在他的电脑上没有注册?那是不是我手动注册后,就可以使用了?

3.我的cab是不是制作的有问题?步骤我是按照http://blog.csdn.net/qjzh/article/details/4566907中教的,一步一步来的;因为我是基于a.ocx制作的b.dll,所以在b.inf中,我是这么写的:(前两个dll我不知道又没有用到,所以把他们两个也包含进来了)

[Add.Code]
Interop.LIVEXLib.dll=Interop.LIVEXLib.dll
AxInterop.LIVEXLib.dll=AxInterop.LIVEXLib.dll
a.ocx=a.ocx
b.dll=b.dll

[Interop.LIVEXLib.dll]
file-win32-x86=thiscab
RegisterServer=yes
FileVersion=1,0,0,0

[AxInterop.LIVEXLib.dll]
file-win32-x86=thiscab
RegisterServer=no
FileVersion=1,0,0,0

[a.ocx]
file-win32-x86=thiscab
clsid={********************}
FileVersion=1,0,0,0
RegisterServer=yes

[b.dll]
file-win32-x86=thiscab
clsid={&&&&&&&&&&&&&&&&&&}
FileVersion=1,0,0,0
RegisterServer=yes


4. 使用C#和C++制作出来的控件有什么不同?C++的会更安全吗?

5. 是不是只要想让客户端可以使用控件,就必须要花钱购买证书???

这实在是一个又臭又长的问题,有劳各位大牛们费神解答了!!!跪谢!!!在线等~~~分数不多,聊表谢意!
c# 控件 web

------解决方案--------------------
一、制作安全控件,但是需要付费证书,这个不太可能实现
〉这个不太贵,看你能挣多少钱了。

二、在客户端注册我自己开发的控件b.dll,但是会弹出错误信息:模块b.dll已加载,但找不到入口点DllRegisterServer.
〉这说明你的控件开发有问题,简单说,创建工程设置有问题。

三、直接使用第三方控件a.ocx,不作任何改动,客户端依然拦截
四、依然直接使用第三方控件a.ocx;在客户端做了下判断,是否已安装了此控件;若未安装,给出链接,下载某exe文件(我就是安装了这个exe文件,电脑上才出现a.ocx文件的),并安装;
但是依然会被IE拦截。
五、直接在客户端注册控件a.ocx,并且提示注册成功,依然拦截。
六、把服务器的IP设为可信站点,依然不好用

〉这几个问题解决方案基本上可行的思路是四,但是不仅是要注册,还要改IE对应的各种安全配置。你在IE里手工改的各种配置都要用exe解决。比如加信任站点、安全设置、插件安全设置。


------解决方案--------------------
ActiveX除了有证书和客户端自己将安全级别降低外好像没有其它解决办法。播放视频的话还是用flash或者silverlight来实现吧
  相关解决方案