博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ACTIVEX控件加载上了但没作用
阅读量:3985 次
发布时间:2019-05-24

本文共 2356 字,大约阅读时间需要 7 分钟。

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。

转载地址:http://tbxui.baihongyu.com/

你可能感兴趣的文章
QT隐藏mouse
查看>>
求最短路径
查看>>
找到一个数组后面第一个大的数
查看>>
找到一个链表中倒数第k个数
查看>>
两个队列实现一个栈
查看>>
用两个栈实现一个带getMin()方法的新型栈
查看>>
头条搜索部门后台开发实习生面经
查看>>
java 线程池
查看>>
设计模式之单例模式
查看>>
自己写的String类能够被加载吗?
查看>>
java让主线程等待所有子线程执行完应该怎么做
查看>>
如此调用
查看>>
计算机的发展史
查看>>
二叉树两个节点最近公共祖先的解法
查看>>
三个线程轮流打印0到10
查看>>
RocketMQ 编译 不再支持源选项6
查看>>
Cpu、核、Java Runtime.getRuntime().availableProcessors()
查看>>
阶乘的对某个质因子P的分解
查看>>
字符串匹配问题,返回第一个匹配的下标 ,运用了KMP算法
查看>>
逆序单链表 时间复杂度O(n)
查看>>