问题标签 [bho]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1067 浏览

c# - IHTMLElement2.getBoundingClientRect() 无法正常工作

getBoundingClientRect() 并不适用于所有情况。当说一排并排的链接列表并且其中一半被推送到下一行时,它会失败,因为所有链接不能放在同一行中。现在对于第二行的第一个链接,getBoundingClientRect() 没有给出正确的结果。

IHTMLRect.bottom 和 IHTMLRect.right 的值是正确的,但是 IHTMLRect.left 和 IHTMLRect.top 的值对应于第一行中的第一个元素。

如何获得第二行中第一个链接的确切坐标?

这发生在说谷歌页面或维基百科页面上,那里有一堆语言或位置链接。

例如,维基百科中的链接说,

由于布局,将出现在如下两行中。

对于这种情况, IHTMLElement2.getBoundingClientRect() 可以完美地适用于除Français之外的所有内容。

我不确定为什么会发生这种情况,非常感谢任何针对此问题的帮助或解决方法。

0 投票
2 回答
1740 浏览

c# - 如何在 BHO 中动态创建浮动 div?

如何在加载时使用 BHO 和 C#.NET 在网页中创建浮动 DIV?

我只想为 DIV 注入一个 HTML 代码片段,它将在页面上显示“Hello World”。div 应该具有绝对位置样式。

-达特

0 投票
1 回答
1124 浏览

c# - BHO 插件不适用于 64 位操作系统上的 IE7

在 IE7 32bit XP/Vista 上流畅运行的 BHO 不适用于 64bt XP/Vista 上的 IE7。我怀疑问题出在注册 BHO 程序集上。谁能有一个好的解决方案让 BHO 适用于 64 位平台?

谢谢,

达特

0 投票
1 回答
319 浏览

browser - Google 如何在 IE 中的选项卡正下方获得工具栏?

我研究了所有与 BHO 相关的文档,但我无法弄清楚 Google 如何在 IE 中的选项卡下方获取翻译工具栏。

任何有用的指针如何为我自己的工具栏实现相同的效果?

替代文字 http://img35.imageshack.us/img35/8157/googlewp.jpg

0 投票
2 回答
257 浏览

.net - 在远程用户 PC 上调试 .NET 问题

我支持 .NET IE 工具栏,适用于在各种远程位置拥有各种操作系统和 IE 版本的用户群。对于这些用户中的一小部分,工具栏可以正确安装,但在他们尝试在 IE 中启用它时从未真正加载。我们无法在我们的测试电脑上复制这种情况。

我们的大部分支持是通过电话或 WebEx 提供的,因此我们对客户 PC 的访问受到一定限制。我正在寻找一种方法来收集信息,例如安全设置、gpo 策略、哪些程序集无法加载,以及我通常使用 Visual Studio 调试器和 fuselogvw 以及其他开发人员工具查看的其他低级内容。然而,对于我客户的个人电脑,我没有这些工具的奢侈,所以我需要更加足智多谋。

那么,大多数电脑上都有哪些工具,或者简单的免费下载可以让我获得一些详细的调试信息?

0 投票
1 回答
775 浏览

remoting - .NET IE BHO 远程处理

我有一个 IE 浏览器帮助程序对象,它是 IE 8 的工具栏插件。我有另一个 .NET .EXE 应用程序(远程处理客户端),它通过通用接口使用远程处理连接到这个 BHO(远程处理服务器)。当我使用服务器组件中使用的相同代码测试 .EXE 应用程序和 TEMP 控制台应用程序之间的通信时,它可以正常通信,并运行远程方法。

但是,当我尝试在 TCP cahannel ON ChannelServices.RegisterChannel(tcpClientChannel, true) 上使用安全性与 BHO 服务器通信时;,我得到一个“FileNotFoundException”无法加载文件或程序集“xxxx”,其中“xxxx”是包含服务器方法的通用接口程序集。

当我尝试通过 TCP 通道上的安全性与 BHO 服务器通信时,关闭 ChannelServices.RegisterChannel(tcpClientChannel, false); ,我收到错误“与远程对象的连接被强制关闭”。

如果我使用简单的测试控制台应用程序重新测试它,它就可以工作。

我开始相信问题在于远程处理在 BHO 实例中的工作方式......有没有人在 BHO .NET 实例中使用过远程处理,我使用 SPICIE 库使用 .NET 创建 BHO。

远程接口对象命名空间 WWie.CommonClasses { class WWieRemote : MarshalByRefObject, WWieClassLibrary.WWieCommonClass.IGetHtmlElement { public string GetElementClicked() { return ("Returned from WWieRemote"); }

}

CLIENT APP 静态 TcpChannel tcpClientChannel = new TcpChannel(); 公共静态 WWieClassLibrary.WWieCommonClass.IGetHtmlElement 远程对象;ChannelServices.RegisterChannel(tcpClientChannel, false); remoteObject = (WWieClassLibrary.WWieCommonClass.IGetHtmlElement)Activator.GetObject(typeof(WWieClassLibrary.WWieCommonClass.IGetHtmlElement), "tcp://localhost:9002/TestWWie");

使用远程方法调用进行测试

服务器 BHO TcpChannel tcpServerChannel = new TcpChannel(9002); ChannelServices.RegisterChannel(tcpServerChannel, true); RemotingConfiguration.RegisterWellKnownServiceType(typeof(WWieClassLibrary.WWieCommonClass.IGetHtmlElement), "TestWWie", WellKnownObjectMode.Singleton);

0 投票
1 回答
1503 浏览

windows - BHO、IHTMLDocument2:get_scripts() 和外部脚本

我正在编写 BHO,代码使用 IHTMLDocument2::get_scripts 获取 HTML 文件中的所有脚本主体,然后使用 get_text() 获取脚本源。但我发现如果脚本是从外部文件嵌入的,则内容是一个空字符串。

有没有办法从由创建的 IHTMLScriptElement 获取源代码?

0 投票
1 回答
5615 浏览

c# - 将事件处理程序附加到 mshtml.DispHTMLInputElement

我正忙着用 C# 编写 BHO(浏览器帮助对象),我需要将事件处理程序附加到输入元素上的所有 onclick 事件。我没有使用 Visual Studio 提供的内置网络浏览器,而是启动安装在客户端 PC 上的 Internet Explorer 的新实例。使用不同版本的 IE 时会出现问题。

在 IE7 和 IE8 中,我可以这样做:

效果很好,问题是,IE6 在转换为 HTMLInputElementClass 时会抛出错误,因此您被迫转换为 DispHTMLInputElement:

问题是,我似乎找不到将事件附加到 DispHTMLInputElement 对象的方法。有任何想法吗?

0 投票
1 回答
1032 浏览

c# - 未使用保护模式实例化的托管 BHO

我正在使用 C# 为 IE 编写 BHO。我关心的代码是这样的:

当 IE 在保护模式关闭的情况下运行时,一切正常。但是,如果打开保护模式,则会调用 NavigateCompleted2(),但永远不会调用 SetSite() 和构造函数 (!?!)。但是,如果我创建一个调用 BHO 类中的方法的菜单项,或者打开一个新选项卡,则所有内容都会正确调用。有谁知道为什么当我打开一个新的 IE 窗口时它不起作用?

完整的源列表可以在这里找到。

0 投票
4 回答
3506 浏览

c# - 如何在 IE 保护模式下访问 AppData(来自托管 BHO)

我正在用 C# 编写一个 IE 扩展(BHO)。在保护模式下运行时(IE 的新 UAC 兼容模式强制所有扩展以低完整性运行),它会失败,因为它无法访问 appdata 文件夹中的 user.config。

是否有某种方法可以标记低完整性进程可以读取文件?

如果做不到这一点,是否有某种方法可以强制 BHO 以中等完整性运行?

如果做不到这一点,是否有某种方法可以在指向 AppData 中的中等完整性文件的低完整性文件夹中创建低完整性符号链接?

如果做不到这一点,是否有某种方法可以强制应用程序使用 LocalLow 文件夹中的 user.config 文件?如何在 .net 中获取此文件夹的路径(未在 Environment.SpecialFolder 下列出)?我是否能够在不丢失所有 user.config 数据的情况下退回运行 XP 或关闭保护模式的用户?