【发布时间】:2011-07-16 02:46:22
【问题描述】:
我一直在使用 Visual C# 设计一个程序,但遇到了让我的程序与 Web 浏览器交互的问题。基本上我需要的是从网络浏览器(Internet Explorer、Firefox、Chrome 等)中检索 URL 地址。
我认为这不会是一项太难的任务,但经过几天和几天的研究和测试,这似乎几乎是不可能的!到目前为止,我遇到过这个......
代码如下:
using NDde.Client;
Class Test
{
public static string GetFirefoxURL()
{
DdeClient dde = new DdeClient("Firefox", "WWW_GetWindowInfo");
dde.Connect();
string url = dde.Request("URL", int.MaxValue);
dde.Disconnect();
return url;
}
}
这对于 Firefox 来说是完美的,但由于某种原因,我无法让它与其他任何东西一起使用。我已经将代码中写着“Firefox”的部分更改为“Iexplore”,就像我在互联网上发现的那样,并尝试了其他形式的 Internet Explorer 表达方式,但出现以下错误:
“客户端无法连接到“IExplorer|WWW_GetWindowInfo”,请确保服务器应用程序正在运行并且它支持指定的服务名称和主题名称对”
我们将不胜感激任何有关此问题的帮助,因为它已成为一项艰巨的任务。
【问题讨论】:
-
您不会在不同的应用程序中扩展相同的DDE。而且,我记得,您可能需要将 COM 用于 IE(不确定 chrome)。
-
是什么让您相信任何浏览器都有一种独特的方式来实现这一目标?我什至不希望所有流行的浏览器都有一种非独特的方式。
-
我找到的有用链接:stackoverflow.com/questions/3579649/…(尽管我 99% 确信这可以简化)
-
正如我在回答中所说,所有主流浏览器(除了 Chrome)都支持 WWW_GetWindowInfo,因此您应该能够想出一个具有共性的方法,至少在那些支持 WWW_GetWindowInfo 的浏览器上。
-
感谢大家的帮助和cmets。 Simon 的方法非常适合我的需要,让我看到了 Microsoft 编程中完全不同的部分!