ACTIVEX控件加载上了但没作用

IE加载activex的水很深啊,说不定什么问题就导致加载不了了,今天终于解决了这个头疼的问题,记录一下

现象:一开始的时候activex可以正常加载并使用,可是装了某某activex控件后,我的activex控件可以正常加载,在管理加载项中显示正常,已启动,但就不能运行了,

js加载不上,new ActiveXObject抛出异常

try {  
         objCard = new ActiveXObject("Uprain.CardAccessorCtrl.1");                  
    }  
catch (e) {  
         alert("调用ActiveX失败!");  
    }  

重装系统后试了试,现象还是一样,应该是某某控件修改了某些ie设置,导致我的插件不能运行了,

比较注册表后果不其然,原来是某某插件在注册表这个位置

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main

增加了这个键值对

TabProcGrowth 值为0

把这个键值对删掉我的控件就可以运行了

到底为什么这个键值对会对我的控件产生影响不得而知,这个键值对的作用如下:

注册表项 TabProcGrowth 负责定义 IE 浏览器启动 IEXPLORE.EXE 进程的方式,随着此注册表项的值不同,IE 浏览器将采用不同的策略运行 IEXPLORE.EXE 进程。如果 TabProcGrowth 不存在,或者即使存在但没有设置任何值,那么 IE 浏览器将继续采用分离 IEXPLORE.EXE 进程、直至达到可用内存与空闲系统资源的上限为止的默认设置。 

如果您新建 TabProcGrowth 时将类型设置为 DWORD 值,那么您可以按照如下的定义自行设置 TabProcGrowth 的值:

如果TabProcGrowth 的值被设置为 0,IE 浏览器将不再为主窗口与选项卡分离 IEXPLORE.EXE 进程,每一个 IE 主窗口以及其中的所有选项卡都将合并共用一个 IEXPLORE.EXE 进程。

例如,假设您启动了两个 IE 主窗口,一个主窗口拥有四个选项卡、一个主窗口拥有两个选项卡,Windows 将只启动两个 IEXPLORE.EXE 进程对应这两个 IE 主窗口,而不是启动八个 IEXPLORE.EXE 进程对应两个主窗口及六个选项卡。注意,IE 主窗口的进程不能合并,两个 IE 主窗口无法合并为一个 IEXPLORE.EXE 进程。

而且,在 TabProcGrowth 的值被设置为 0 后,Windows 7/Server 2008(R2)/Vista 将无法以保护模式运行 IE 浏览器,因为 IE 保护模式只能在 IEXPLORE.EXE 进程分离模式中生效。

如果TabProcGrowth 的值被设置为 1,IE 浏览器将为每个主窗口使用一个分离的 IEXPLORE.EXE 进程,为每个主窗口中的所有选项卡使用一个分离的IEXPLORE.EXE 进程,但不会为每个单独的选项卡分离 IEXPLORE.EXE 进程。

例如,假设您启动了两个 IE 主窗口,一个主窗口拥有四个选项卡、一个主窗口拥有两个选项卡,Windows 将启动四个 IEXPLORE.EXE 进程。其中两个 IEXPLORE.EXE 进程对应两个 IE 主窗口,另两个 IEXPLORE.EXE 进程分别对应第一主窗口中的四个选项卡与第二主窗口中的两个选项卡。

在TabProcGrowth 的值被设置为 1 后,Windows7/Server 2008(R2)/Vista 可以以保护模式运行 IE 浏览器。

 

如果TabProcGrowth 的值被设置为任意大于 1 的整数数字(例如 5),IE 浏览器将像默认设置一样为所有的主窗口与选项卡分离 IEXPLORE.EXE 进程,但 IEXPLORE.EXE 进程的总数将不会超过 TabProcGrowth 指定的整数数字。在 IEXPLORE.EXE 进程的数量达到上限后,如果您继续新建选项卡,那么所有的选项卡将按照平均分配的原则共用已经启用的 IEXPLORE.EXE 进程。

在TabProcGrowth 的值被设置为任意大于 1 的整数数字后,Windows 7/Server 2008(R2)/Vista 可以以保护模式运行 IE 浏览器。

如果您新建 TabProcGrowth 时将类型设置为字符串值,那么您还可以按照如下的定义自行设置TabProcGrowth 的值:

如果 TabProcGrowth 的值被设置为 small(字符串值),Windows 同时运行的 IEXPLORE.EXE 进程数量将被限制为 5 个。而且,必须至少打开 15 个选项卡才会出现第三个 IEXPLORE.EXE 进程。

如果TabProcGrowth 的值被设置为 medium(字符串值),Windows 同时运行的 IEXPLORE.EXE 进程数量将被限制为 9 个。而且,必须至少打开 17 个选项卡才会出现第五个 IEXPLORE.EXE 进程。

如果TabProcGrowth 的值被设置为 large(字符串值),Windows 同时运行的 IEXPLORE.EXE 进程数量将被限制为 16 个。而且,必须至少打开 21 个选项卡才出现第九个 IEXPLORE.EXE 进程。

因此,如果您的计算机可用内存与空闲系统资源紧缺,建议将字符串值类型的 TabProcGrowth 注册表项的值设置为 small 或 medium。
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Barry__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值