日期:2014-05-17  浏览次数:21227 次

c#编写的ActiveX 在别人电脑上不能显示!!
网上流传的那种C#写ActiveX啊!!

1.AssemblyInfo.cs
添加了
[assembly: AllowPartiallyTrustedCallers()]
[assembly: ComVisible(true)]

2.创建了IObjectSafety.cs

3.lrprint.cs (userControl)
[Guid("F1950945-9E8B-468B-9178-0CD2DDA9F1D6")]
public partial class lrprint : UserControl, IObjectSafety
实现了IObjectSafety.cs

4.用makeCAB打包了签名了,大神看看INF有没有写错!

[version] 
signature="$CHICAGO$"  
AdvancedINF=2.0  

[Add.Code] 
lrprint.dll=lrprint.dll

[lrprint.dll] 
file-win32-x86=thiscab  
clsid={F1950945-9E8B-468B-9178-0CD2DDA9F1D6} 
FileVersion=1,0,0,1
RegisterServer=yes 

5.在别人机子上弹出(图片不知道会不会挂)


点击安装页面刷新了一下,到底安装(注册)成功了没?!!
成功了为什么调用不了?!!

------解决方案--------------------
别人电脑上不能显示,是不是因为没有安装 framework相应的版本啊!
------解决方案--------------------
将浏览器安全级别设置为低
------解决方案--------------------
默认是阻止的,需要手动解除阻止~
------解决方案--------------------
浏览器安全性里面启用所有的ActiveX 设置
------解决方案--------------------
浏览器设置
------解决方案--------------------
如果在浏览器中的加载项中找不到你的ActiveX控件名称的话,那就尝试手动注册一下。

将你的OCX和dll文件拷贝到C盘Windows目录下的System32文件夹下,然后打开运行,输入:

 regsvr32 你的控件名.ocx

注意如果是Win7系统,需要用管理员身份运行cmd,然后输入
------解决方案--------------------
1、浏览器设置启用你的AX
2、如果在浏览器中的加载项中找不到你的ActiveX控件名称的话,那就尝试手动注册一下
3、不建议用c#写AX,不实用