如何取得IE里COM组件所在的页面的URL地址

shines77 shines77 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
可以通过COM组件的窗口句柄hwnd,得到其父窗体的句柄,然后用MACC(oleacc.dll)的函数,取得HTMLDocument接口,然后经过转换得到IWebBroswer2接口,再调用get_LocationURL()方法,但是得到的是当前IE窗口的地址栏的URL,如果控件放在IE的iframe窗口里则无法获得正确的URL

比如控件在http://www.abc.com/b.htm,IE的主窗体页面是http://www.abc.com/a.htm
http://www.abc.com/b.htm 用iframe嵌套在a.htm里面,现在获得的URL是http://www.abc.com/a.htm,而不是正确的b.htm

奇怪的是嵌套的iframe没有窗口句柄,否则即好办了
...全文

相关推荐

获取浏览器地址栏URL

通过枚举和com组件实现得到地址和控制浏览器网页目的,向浏览器添加插件,插件获取浏览器地址栏URL

音乐男

通过枚举与COM组件获取浏览器URL的方法详解

COM(Component Object Model)是微软提供的一种二进制接口标准,广泛应用于Windows平台的软件开发中。COM组件允许不同编程语言之间进行互操作,并支持对象的动态创建与调用。在浏览器自动化领域,COM组件是实现与IE浏览器交互的关键技术。通过本章内容,我们掌握了如何使用 COM 接口在 Windows 平台上获取浏览器地址栏的 URL。从类的窗口枚举开始,到接口的属性调用,再到完整的 C# 示例与调试技巧,读者可以构建一个稳定可靠的 URL 获取流程。

DIY飞跃计划

C#实时获取IE与Firefox浏览器URL:COM与UI Automation实战指南

浏览器自动化与URL实时监控是网络安全审计、自动化测试和辅助工具开发中的常见需求。由于IE与Firefox底层架构差异,分别依赖COM自动化与UI Automation框架实现。COM通过ShellWindows枚举窗口,而UIA则需解析地址栏控件属性,两者在跨进程、版本适配及资源释放上存在诸多隐患。掌握这些原理,不仅能高效获取当前访问地址,还能规避内存泄漏与崩溃风险。本文基于C#实践,详解双浏览器统一监控架构,并分享轮询策略、平台位数选择及Firefox版本适配等工程经验,为开发者提供一套即拿即用的解决方

超级简历WonderCV

VC 获取IE所有打开页面URL

VC 可获取IE所有打开页面的UGL,程序退出有问题,但可以通过单步调试来观察所获取的UGL

hanhu8609

获取IE10浏览器URL

C#获取IE10当前页面的地址。包含C#源代码。

dssfanzj
评论 4
收藏 已收藏
分享
返回顶部
shines77
ATL 3,248 成员 48,530 内容