我想创建一个IE扩展程序 - 一个侧边栏(“资源管理器栏”),就像IE9中的书签/收藏夹侧边栏一样,它应该在其中显示HTML网页。
我用谷歌搜索了几个小时,读了一些:
和
但我需要一个侧边栏 - 没有窗户或信息框。我想看一个简单的基本解决方案 - 我稍后会详细说明。
我为FF和Chrome创建了一个扩展程序 - 他们的扩展开发中心比微软更好。
请告诉我,我应该以简单的步骤做什么。我想在Visual Studio 2010和C#中创建IE扩展。我无法用C ++创建它。
编辑(2011-10-20):
我设法在How to get started with developing Internet Explorer extensions?中完成了解决方案,但是:
顺便说一句。我使用Visual Studio 2010 Express(Visual C#2010 Express) - 非Professional或Ultimate - 我认为项目的Debug选项卡中没有Start External Program选项。
请帮忙。
答案 0 :(得分:2)
我找到了一个完美的工作示例: http://code.msdn.microsoft.com/CSIEExplorerBar-ba8fe182/view/Reviews
非常有趣的是我无法在谷歌找到它......
下载后,只需解压缩文件并打开CSIEExplorerBar.sln。某些解决方案的项目无法导入到VS 2010中 - 它只是安装程序项目,您不需要它们来运行BHO。
转到项目的属性,在Build Events选项卡中将此文本放入“Post-build event command line”(字面意思):
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /i "$(TargetDir)$(TargetFileName)"
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /unregister "$(TargetDir)$(TargetFileName)"
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"
构建项目 - 您会收到错误,因为您可以看到,第二个命令尝试取消注册BHO但尚未注册任何内容。您可以重新运行构建,但不会出现任何错误。
打开IE。打开视图菜单,资源管理器栏并单击“图像列表浏览器栏” - 您应该看到刚刚构建的资源管理器栏!
要允许BHO显示HTML页面,您只需更改用户控件设计 - 添加WebBrowser控件并添加要显示给控件的页面的URL。
<强>详情
我为Chrome和Firefox创建了扩展程序。 IE扩展是最糟糕的架构。文档很糟糕 - 它只是过时而且只适用于C ++。 Chrome和Firefox的扩展程序基于HTML / XUL和JavaScript - 几乎每个Web开发人员都可以在几分钟内构建他/她自己的扩展程序!我认为在IE中要困难得多 - 你必须逐字地浏览互联网以找到对这项技术有用的任何信息。
正如你可以在这里阅读的那样 - http://msdn.microsoft.com/en-us/library/bb776819.aspx - 你必须玩一种叫做注册表的神奇之物。这是他们可以选择存储扩展数据的最糟糕的事情。我仍然不知道在哪里可以添加有关作者或BHO版本的信息。如果你这样做,请回答:https://stackoverflow.com/questions/7926800/how-to-add-author-name-version-number-description-etc-to-browser-helper-objec
如果未在此解决方案中使用密钥IEExplorerBar.snk签名,则BHO将无法工作。您可以非常轻松地在新项目中添加密钥 - 只需打开项目属性,“签名”选项卡 - “签署程序集”并添加新密钥。
文档非常陈旧,没有人对此做任何事情!
恕我直言微软应该重新设计并再次编写IE - 它的架构已经过时,不合时宜。
一些链接
添加工具栏按钮以打开资源管理器栏:http://msdn.microsoft.com/en-us/library/aa753588%28v=VS.85%29.aspx#details_explorer
有关x64系统中注册表的一些信息: http://msdn.microsoft.com/en-gb/library/aa384232%28VS.85%29.aspx
关于Interlop名称空间(SHDocVw):http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.ole.interop.aspx