不能得到BHO在64位工作【JAVA教程】

!
也想出现在这里? 联系我们
信息

不能得到BHO在64位工作,第1张

概述不能得到BHO在64位工作

我正在处理IE11浏览器帮助对象。 当我在x86中构build它时,我得到了它的工作。 问题是,我想在x64上使用该项目,而在x64上构buildBHO扩展时无法正常工作。

扩展名显示在Internet Explorer加载项屏幕上,但是JavaScriptpopup窗口不显示。

通过Visual Studio命令提示符以pipe理员身份使用regasm的x64版本注册DLL,使用/不使用/codebase和/tlb但是没有结果。 registry项已成功添加到我的registry中,但BHO根本不在IE中工作。 我也尝试将文件放在Program files的子文件夹中,但它根本不起作用。

当我在增强保护模式下运行我的IE时,加载项pipe理器显示我的BHO incompatible ,但是没有EPM,IE显示即使不起作用。

在windows 8.1 + IE 11 +环回中不允许Web套接字客户端连接问题

Internet Explorer 11(IE 11)使用DOMParser中的parseFromString引发语法错误

windows 8.1 / IE11自定义URL协议打开 – > about:空白

如何在windows 10上强制安装IE 11?

在IE11(windows 7)中从Cloudfront下载的可执行文件无需文件扩展名即可下载

我想让BHO在x64上工作。

我也尝试过这个\’hello world\’BHO项目,但是当我改变它在x64上而不是x86上时会出现同样的问题。

在Win7上使用IE11的JavaScript运行时错误:无法设置未定义或空引用的属性“禁用”

IE不能访问本地主机,但铬和firefox工作

在Internet Explorer中强制打开用于XML文件下载的button

windows Media Player将不会从IE11中的链接播放.WMV

看起来它并不适用于所有人,所以,我将描述我所做的工作。

1)从这里下载示例项目: https : //github.com/reinaldo13/IE-bho-extension

2)修改BHO.cs RegisterBHO(…)方法

从:

RegistryKey ourKey = registryKey.OpenSubKey(guID);

至:

RegistryKey ourKey = registryKey.OpenSubKey(guID,true); //we want to write the registry

3)编译Anycpu项目属性,选择Anycpu作为平台目标。

4)创建一个像这样的.bat,适应你的路径,并复制你的输出dll:

\”c:windowsMicrosoft.NETFrameworkv4.0.30319RegAsm.exe\” IEextension.dll /codebase \”c:windowsMicrosoft.NETFramework64v4.0.30319RegAsm.exe\” IEextension.dll /codebase

这将注册为x86和x64的DLL。 这是强制性的两个版本注册,否则IE不会喜欢它(它会抱怨扩展是\’不兼容\’),因为它将无法启动它取决于您的IE设置。 注意我想你可以为每个版本有两个不同的文件,但是.NET的Anycpu不需要这个文件。

5)运行该.bat作为管理员,这是当我这样做的输出:

\”c:windowsMicrosoft.NETFrameworkv4.0.30319RegAsm.exe\” IEextension.dll /codebase Microsoft .NET Framework Assembly Registration Utility version 4.7.2046.0 for Microsoft .NET Framework version 4.7.2046.0 copyright (C) Microsoft Corporation. All rights reserved. RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can cause your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblIEs. Please give your assembly a strong name and re-register it. Types registered successfully \”c:windowsMicrosoft.NETFramework64v4.0.30319RegAsm.exe\” IEextension.dll /codebase Microsoft .NET Framework Assembly Registration Utility version 4.7.2046.0 for Microsoft .NET Framework version 4.7.2046.0 copyright (C) Microsoft Corporation. All rights reserved. RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can cause your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblIEs. Please give your assembly a strong name and re-register it. Types registered successfully

6)运行IExplore.exe 。 它可能取决于你的设置(显示“HolA !!!”messageBox),但无论如何,去菜单工具/ Internet选项/程序/管理加载项,这是我看到:

如果扩展功能被禁用,您应该可以启用它(并重新启动)。

如果不起作用(默认情况下不应该),请确保您选中了“为增强保护模式启用64位进程*”(需要重新启动)。 对我来说信息是错误的,它应该只是说“启用64位进程”…

Regasm.exe(汇编注册工具)在这里

检查你的项目设置,编译为64位,并检查IE版本。 并以管理员模式运行它。

你的代码是完美的。 只是系统设置和编译配置搞砸了,

也看看这个设置https://answers.microsoft.com/en-us/IE/forum/IE11-windows_7/enable-64-bit-processes-in-IE-11/212270df-cc35-4e09-89e4 -13b9da1bb6a7?AUTH = 1

希望这会帮助你!

总结

以上是内存溢出为你收集整理的不能得到BHO在64位工作全部内容,希望文章能够帮你解决不能得到BHO在64位工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞171 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容