我们知道IE中的Iternet选项,中程序标签下有一个管理加载器 。里面会列举IE中的各个加载项目
包括ActiveX 控件、浏览器扩展(Explorerbar)、浏览器帮助程序对象(BrowserHelper Object) 或工具栏(Toolbar) 这四项目,请问这个是怎么列举出来的呢?
我有一个思路是根据注册表来列举、比如
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions
这个下面是对对应的浏览器扩展,对于浏览器帮助对象所在的注册表位置,我也知道,
现在就是不知道ActiveX 控件在注册表中的位置,高人请指点。
我的最终目的是实现列举IE 中的各个加载项
谢谢!
包括ActiveX 控件、浏览器扩展(Explorerbar)、浏览器帮助程序对象(BrowserHelper Object) 或工具栏(Toolbar) 这四项目,请问这个是怎么列举出来的呢?
我有一个思路是根据注册表来列举、比如
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions
这个下面是对对应的浏览器扩展,对于浏览器帮助对象所在的注册表位置,我也知道,
现在就是不知道ActiveX 控件在注册表中的位置,高人请指点。
我的最终目的是实现列举IE 中的各个加载项
谢谢!
解决方案 »
- boykov大牛扩张与交换算法中权值的问题
- 如何得到MDI中的除了被dock bar占据外的剩余区域rect
- 高分急救 EnumWindows问题
- MAKEINTRESOURCE的问题
- 关于属性页里按扭ID_APPLY_NOW加位图问题??好奇怪。。。。
- 能否实现将一个ActiveX控件的多个实例添加到一个view中?为什么要出错!!!
- 如何使程序延时执行?
- 请进:我在编译我的一个工程文件时出现下面的错误提示,请指教一下好吗?(回答就给分!)
- 紧急求助,用ADO,_CommandPtr和_RecordsetPtr调用存储过程的问题.在线等待.
- 告诉我怎么回事?(静态文本框问题)一定给分!!!!
- MFC延迟调用DLL?如何实现?
- VC操作Excel,如何删除工作薄中的sheet
我用的是IE7
首先;我在加载管理器中看到了Shell Name Space , ShockWave Flash Object , SearchAssistantOc 这三个AcitiveX 控件,而我到C:\WINDOWS\Downloaded Program Files 确没有看到任何文件(显示隐藏文件打开了)说明这个有问题。
在clsid下的确有我要的控件,但是其子键太多了,不知道怎么分辨那些属于ActiveX 控件, 谢谢指点!
恩,我知道ShockWave Flash Object在你说的位置是正确的,也可以看到看到其对应的文件位置,
但是问题是HKEY_CLASSES_ROOT\CLSID 目录下有很多子目录,并不是所有目录都对应着一个IE的ActiveX控件,
我并不知道哪些目录对应真正的ActiveX 控件,是不是子目录满足一定的特征呢?或是可以通过什么方法确定呢?再次感谢
IE 中的--》internet选项 --》程序---》 加载管理项-->Internet Explorer 中已经 使用的加载项
之后就会显示已经加载的选项了,这是通过真怎样的机制罗列出来的呢?我就想实现这个功能!
大虾指点一二,感激不尽!
浏览器扩展的注册表位置是:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions
BHO的位置是:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
其它的差不多了。你通过枚举注册表子项,就可以全部枚举了。
ActiveX是由网页或者其它容器窗口加载的,网页或窗口设计者往往知道控件的GUID或者PROGID,所以直接按照这个ID来定位,IE浏览器是不会主动加载的,也不会去枚举到底有哪些控件。当网页通过object标签或者脚本加载控件后,IE可以自行记录下来整个列表,这个列表就反映在加载项管理器中的ActiveX版块中。至于判断一个已加载的COM组件是不是ActiveX倒是很容易,只需查询它是否实现了IOleControl接口即可。