我发现使用Greasemonkey类型的用户并将其转换为Chrome,Safari和Firefox的扩展/插件非常容易.当然,人们可以在Chrome中原生运行它们,只需在Firefox中使用Greasemonkey插件即可.
我现在正在探索是否可以在IE上运行我的用户脚本.我尝试了古老的Trixie和膨胀的ie7pro,但都没有正确运行脚本.它们部分工作,但也似乎在同一页面上多次重新加载脚本,不断插入应该只显示一次的项目.经常提到的Greasemonkey for IE现在已经不存在了,它的域名(gm4ie.com)已经停放并且充满了广告.
我挖了一下w/search,寻找有关如何开发IE扩展的信息(例如这个).但我没有找到任何人谈论让用户脚本在插件内运行.至少看起来javascript可能在那些环境中不可用,需要在C#中完全重写.
我上面没有列出任何Greasemonkey型插件吗?是否可以将javascript用户脚本转换为IE扩展?
internet-explorer cross-browser userscripts browser-extension
我正在研究IE11 Browser Helper Object.当我在x86中构建它时,我得到了它.问题是,我想在x64上使用该项目,当它在x64上构建时,BHO扩展无法正常工作.
该扩展程序显示在Internet Explorer加载项屏幕上,但javascript弹出窗口未显示.
该DLL通过Visual Studio的命令提示符管理员使用regasm x64版本注册,具有/不/codebase
和/tlb
,但没有结果.注册表项已成功添加到我的注册表中,但BHO根本无法在IE中工作.我也尝试将文件放在Program Files的子文件夹中,但它根本不起作用.
当我在增强保护模式下运行我的IE时,附加组件管理器显示我的BHO是incompatible
,但没有EPM IE显示enabled
即使它不起作用.
我想让BHO在x64上工作.
我也尝试过这个'hello world'BHO项目,但是当我将它改为x64而不是x86时,会出现同样的问题.
我想开发一个Internet Explorer扩展程序,用于更改特定网页的内容,例如Google Chrome中的内容脚本.(例如,当我访问谷歌网站并搜索"汽车"时,我想在页面上创建一个带有"汽车"字样的div).
我一直在寻找,但没有找到明确的证据,如果这种事情是可能的.
我特别想要的是一个清晰的教程或如何做到这一点的一些例子.
布鲁诺,
我想为IE 7/8构建一个浏览器扩展.我想用.NET来做.你知道我可以参考的任何资源或教程吗?我找不到多少.
谢谢!
我正试图弄清楚如何在页面内的Javascript中调用我的BHO对象中的C#方法.我在C++/ATL/Com中找到了很多关于如何做的页面,例如:
我试图在C#中正确地实现它,但是我无法让它工作,可能是因为我有一些明显的COM问题,我并不完全理解.
我正在使用C#4.0.
以下是代码的相关部分:
using SHDocVw;
using mshtml;
using System.Runtime.InteropServices;
[ComVisible(true),
Guid("300736C4-DCDA-4DB0-90AD-4510A12EBBC6"),
ClassInterface(ClassInterfaceType.None),
ProgId("My Extension")]
public class BrowserHelperObject : IObjectWithSite
{
const int DISPATCH_PROPERTYPUT = 4;
const int FDEX_NAME_ENSURE = 2;
const uint LOCALE_USER_DEFAULT = 0x0400;
WebBrowser browser;
...
public void OnDocumentComplete(dynamic frame, ref dynamic url)
{
...
var window = browser.Document.parentWindow;
int pid = 0;
window.GetDispId("myExtension", FDEX_NAME_ENSURE, ref pid);
System.Runtime.InteropServices.ComTypes.DISPPARAMS dispParms = new System.Runtime.InteropServices.ComTypes.DISPPARAMS();
dispParms.cArgs = 1;
dispParms.cNamedArgs = 0;
dispParms.rgvarg = ???;
dispParms.rgdispidNamedArgs = IntPtr.Zero;
System.Runtime.InteropServices.ComTypes.EXCEPINFO …
Run Code Online (Sandbox Code Playgroud) 我正在用C#编写IE扩展(BHO).在受保护模式下运行时(IE的新UAC兼容模式会强制所有扩展以低完整性运行),它会失败,因为它无法访问appdata文件夹中的user.config.
是否有某种方法可以通过较低完整性的进程来标记文件?
如果不这样做,是否有某种方法可以迫使BHO以中等程度的完整性运行?
如果失败了,有没有办法在低完整性文件夹中创建一个低完整性的符号链接,指向AppData中的中等完整性文件?
如果失败了,是否有某种方法可以强制应用程序在LocalLow文件夹中使用user.config文件?如何在.net中获取此文件夹的路径(它未在Environment.SpecialFolder下列出)?我是否可以退回运行XP的用户或关闭保护模式,而不会丢失所有user.config数据?
我想创建一个IE扩展 - 侧边栏("资源管理器栏")看起来就像IE9中的书签/收藏夹侧边栏,它应该在其中显示HTML网页.
我用谷歌搜索了几个小时,读了一些:
和
但我需要一个侧边栏 - 没有窗户或信息框.我想看一个简单的基本解决方案 - 我稍后会详细介绍.
我为FF和Chrome创建了一个扩展 - 他们的扩展开发中心比微软更好.
请告诉我,我应该以简单的步骤做什么.我想在Visual Studio 2010和C#中创建IE扩展.我无法用C++创建它.
编辑(2011-10-20):
我已经设法完成了如何开始开发Internet Explorer扩展的解决方案?但:
BTW.我使用Visual Studio 2010 Express(Visual C#2010 Express) - 非专业版或旗舰版 - 我认为项目的"调试"选项卡中没有"启动外部程序"选项.
请帮忙.
我正在寻找开发IE9扩展(使用以下作为参考如何开始开发Internet Explorer扩展?)我想知道我将如何部署它.
Firefox和Chrome都有一个"商店",您可以在其中浏览插件,然后是一个通用的打包机制/标准,但我无法为IE找到相同的内容......任何人都有任何想法?
1)我试图在C#中制作一个简单的BHO,就像这里已经回答的那样:https://stackoverflow.com/a/5740004/285594
2)但不幸的是,他们都尝试了IE11,其中一些使它工作,一些也失败了
3)在按照该答案中提到的所有内容之后,我还购买了官方代码符号,但它根本不适用于IE11 Windows 7 64位.
您可以下载我准备好的Visual Studio 2013版本:其中包含IE11的所有源代码和详细信息:
https://www.dropbox.com/s/60kg212vkjb7yud/ClassLibrary2.rar
问:任何人都可以建议/建议/帮助我如何打造这个BHO的世界?
我也尝试了其他代码来自codeproject,但仍然没有一个我能够工作,尝试了4周后,我迷路了,请告诉我的ClassLibrary2.rar有什么问题,这不是浏览文本"浏览器" ?
我完全迷了,请指教.
编辑:
IEAddon.cs
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Microsoft.Win32;
using mshtml;
using SHDocVw;
namespace InternetExplorerExtension
{
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[Guid("D40C654D-7C51-4EB3-95B2-1E23905C2A2D")]
[ProgId("MyBHO.WordHighlighter")]
public class WordHighlighterBHO : IObjectWithSite, IOleCommandTarget
{
const string DefaultTextToHighlight = "browser";
IWebBrowser2 browser;
private object site;
#region Highlight Text
void OnDocumentComplete(object pDisp, ref object URL)
{
try
{
// This will prevent this method being executed more than once. …
Run Code Online (Sandbox Code Playgroud) 我想为IE 8编写一个附加组件,但我想使用纯托管C#.这可能吗?我知道最长的时间我们只谈论C++.
c# ×8
bho ×3
.net ×2
add-in ×2
atl ×1
c#-4.0 ×1
c++ ×1
com ×1
frameworks ×1
html ×1
javascript ×1
sidebar ×1
userscripts ×1
windows ×1