Ответ 1
Кажется, что это не работает для всех, поэтому я опишу, что я сделал, чтобы заставить его работать.
1) загрузите образец проекта отсюда: https://github.com/reinaldo13/ie-bho-extension
2) изменить RegisterBHO(...)
метод в BHO.cs
от
RegistryKey ourKey = registryKey.OpenSubKey(guid);
в
RegistryKey ourKey = registryKey.OpenSubKey(guid, true); //we want to write the registry
3) скомпилируйте проект для AnyCPU: свойства проекта, выберите AnyCPU для целевой платформы.
4) создайте .bat, как это, адаптируйте свой путь и скопируйте его в сторону выходов dll:
"c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" ieextension.dll /codebase
"c:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" ieextension.dll /codebase
Это будет зарегистрировать dll для x86 и x64. Это обязательный, чтобы обе версии были зарегистрированы, иначе IE не понравится (он будет жаловаться, что расширение "несовместимо" ), потому что оно не сможет запустить его в зависимости от ваших настроек IE. Примечание. Предположим, у вас может быть два разных файла для каждой версии, но .NET AnyCPU не нуждается в этом.
5) запустите этот .bat как admin, вот вывод, когда я это делаю:
"c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.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:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.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!!!" ), но в любом случае перейдите в меню "Инструменты" / "Свойства обозревателя" / "Программы" / "Управление надстройками", вот что я вижу:
Если расширение отключено, вы должны иметь возможность включить его (и перезапустить).
Если он не работает (по умолчанию он не должен), убедитесь, что вы отметили "Включить 64-разрядные процессы для Enhanced Protected Mode *" (требуется перезагрузка). Для меня сообщение неверно, оно должно просто сказать "Включить 64-битные процессы"...