问题标签 [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.
c# - IHTMLElement2.getBoundingClientRect() 无法正常工作
getBoundingClientRect() 并不适用于所有情况。当说一排并排的链接列表并且其中一半被推送到下一行时,它会失败,因为所有链接不能放在同一行中。现在对于第二行的第一个链接,getBoundingClientRect() 没有给出正确的结果。
IHTMLRect.bottom 和 IHTMLRect.right 的值是正确的,但是 IHTMLRect.left 和 IHTMLRect.top 的值对应于第一行中的第一个元素。
如何获得第二行中第一个链接的确切坐标?
这发生在说谷歌页面或维基百科页面上,那里有一堆语言或位置链接。
例如,维基百科中的链接说,
由于布局,将出现在如下两行中。
对于这种情况, IHTMLElement2.getBoundingClientRect() 可以完美地适用于除Français之外的所有内容。
我不确定为什么会发生这种情况,非常感谢任何针对此问题的帮助或解决方法。
c# - 如何在 BHO 中动态创建浮动 div?
如何在加载时使用 BHO 和 C#.NET 在网页中创建浮动 DIV?
我只想为 DIV 注入一个 HTML 代码片段,它将在页面上显示“Hello World”。div 应该具有绝对位置样式。
-达特
c# - BHO 插件不适用于 64 位操作系统上的 IE7
在 IE7 32bit XP/Vista 上流畅运行的 BHO 不适用于 64bt XP/Vista 上的 IE7。我怀疑问题出在注册 BHO 程序集上。谁能有一个好的解决方案让 BHO 适用于 64 位平台?
谢谢,
达特
browser - Google 如何在 IE 中的选项卡正下方获得工具栏?
我研究了所有与 BHO 相关的文档,但我无法弄清楚 Google 如何在 IE 中的选项卡下方获取翻译工具栏。
任何有用的指针如何为我自己的工具栏实现相同的效果?
.net - 在远程用户 PC 上调试 .NET 问题
我支持 .NET IE 工具栏,适用于在各种远程位置拥有各种操作系统和 IE 版本的用户群。对于这些用户中的一小部分,工具栏可以正确安装,但在他们尝试在 IE 中启用它时从未真正加载。我们无法在我们的测试电脑上复制这种情况。
我们的大部分支持是通过电话或 WebEx 提供的,因此我们对客户 PC 的访问受到一定限制。我正在寻找一种方法来收集信息,例如安全设置、gpo 策略、哪些程序集无法加载,以及我通常使用 Visual Studio 调试器和 fuselogvw 以及其他开发人员工具查看的其他低级内容。然而,对于我客户的个人电脑,我没有这些工具的奢侈,所以我需要更加足智多谋。
那么,大多数电脑上都有哪些工具,或者简单的免费下载可以让我获得一些详细的调试信息?
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);
windows - BHO、IHTMLDocument2:get_scripts() 和外部脚本
我正在编写 BHO,代码使用 IHTMLDocument2::get_scripts 获取 HTML 文件中的所有脚本主体,然后使用 get_text() 获取脚本源。但我发现如果脚本是从外部文件嵌入的,则内容是一个空字符串。
有没有办法从由创建的 IHTMLScriptElement 获取源代码?
c# - 将事件处理程序附加到 mshtml.DispHTMLInputElement
我正忙着用 C# 编写 BHO(浏览器帮助对象),我需要将事件处理程序附加到输入元素上的所有 onclick 事件。我没有使用 Visual Studio 提供的内置网络浏览器,而是启动安装在客户端 PC 上的 Internet Explorer 的新实例。使用不同版本的 IE 时会出现问题。
在 IE7 和 IE8 中,我可以这样做:
效果很好,问题是,IE6 在转换为 HTMLInputElementClass 时会抛出错误,因此您被迫转换为 DispHTMLInputElement:
问题是,我似乎找不到将事件附加到 DispHTMLInputElement 对象的方法。有任何想法吗?
c# - 未使用保护模式实例化的托管 BHO
我正在使用 C# 为 IE 编写 BHO。我关心的代码是这样的:
当 IE 在保护模式关闭的情况下运行时,一切正常。但是,如果打开保护模式,则会调用 NavigateCompleted2(),但永远不会调用 SetSite() 和构造函数 (!?!)。但是,如果我创建一个调用 BHO 类中的方法的菜单项,或者打开一个新选项卡,则所有内容都会正确调用。有谁知道为什么当我打开一个新的 IE 窗口时它不起作用?
完整的源列表可以在这里找到。
c# - 如何在 IE 保护模式下访问 AppData(来自托管 BHO)
我正在用 C# 编写一个 IE 扩展(BHO)。在保护模式下运行时(IE 的新 UAC 兼容模式强制所有扩展以低完整性运行),它会失败,因为它无法访问 appdata 文件夹中的 user.config。
是否有某种方法可以标记低完整性进程可以读取文件?
如果做不到这一点,是否有某种方法可以强制 BHO 以中等完整性运行?
如果做不到这一点,是否有某种方法可以在指向 AppData 中的中等完整性文件的低完整性文件夹中创建低完整性符号链接?
如果做不到这一点,是否有某种方法可以强制应用程序使用 LocalLow 文件夹中的 user.config 文件?如何在 .net 中获取此文件夹的路径(未在 Environment.SpecialFolder 下列出)?我是否能够在不丢失所有 user.config 数据的情况下退回运行 XP 或关闭保护模式的用户?