gpt4 book ai didi

c# - 用于控制选项卡的 Internet Explorer 7+ 插件

转载 作者:太空宇宙 更新时间:2023-11-03 13:59:18 26 4
gpt4 key购买 nike

初步说明,我不是 c# 程序员,但我已经为 chrome 和 firefox 开发了插件/扩展,我需要为工作相关项目开发 internet explorer 的第三个扩展。

我正在尝试从 IE 中的 BHO 扩展访问 Internet Explorer 实例。我一直在使用以下资源:

所以,我已经有了基本的插件,并在窗口完成加载时通过注入(inject)一个 javascript 警告框来测试它。

我的插件最终将不得不管理两个选项卡(一个作为主机,另一个作为从属),以及 last link mentioned处理它,但它需要浏览器的 HWND 句柄,我不确定如何获得它。

看起来它可能在 WebBrowser 成员 .Parent 下,但我不知道我需要将其转换为哪个类才能获得 IE 句柄。

最佳答案

因此,要获取机器上已经运行的任何浏览器甚至任何进程的句柄,您可以在以下位置使用 FindWindow 方法:

User32.dll

通过以下方式在您的类中包含对它的引用:

    // Find by class name and window name
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

// Find window name only
[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
static extern IntPtr FindWindowByCaption(IntPtr ZeroOnly, string lpWindowName);

你可以像下面这样在你的类中调用它们:

    public FindMyWindow(string classname, string windowName)
{
IntPtr hWnd = FindWindow(classname, null);
// Or do
hWnd = FindWindowByCaption(IntPtr.Zero, windowName);
}

你可以使用

Spy++

如果需要,Visual Studio 2010 可以找到类名。

关于c# - 用于控制选项卡的 Internet Explorer 7+ 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11090368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com