【问题标题】:.NET Process to open web page without tabs or address bar.NET 进程打开没有标签或地址栏的网页
【发布时间】:2014-05-22 01:34:39
【问题描述】:

.NET 中有没有办法让进程打开没有地址栏和选项卡的默认 Web 浏览器,而不使用信息亭模式?我不能使用 WebBrowser 对象,因为它使用 IE7,并且需要打开的页面使用 JavaScript。我不能使用信息亭模式,因为客户端需要窗口出现在屏幕的特定区域。我还需要保持对浏览器的访问,因为我必须知道页面何时关闭。

【问题讨论】:

  • 网络浏览器控件不是 IE7。它是用户在他们的机器上安装的任何版本的 IE 的包装器。如果您在要呈现的页面中指定 ,则应正确呈现网页。
  • 这令人鼓舞。但是,这与我在任何其他论坛上看到的其他内容完全矛盾。我看到很多论坛回答说它只使用 IE7,除非你运行的是 Windows 8,在这种情况下它运行 IE10。请问可以提供出处吗?

标签: c# .net browser


【解决方案1】:

试试这个:

dynamic ie = Activator.CreateInstance(Type.GetTypeFromProgID("InternetExplorer.Application"));

ie.AddressBar = false;
ie.MenuBar = false;
ie.ToolBar = false;

ie.Visible = true;
ie.Navigate("www.google.com");

这使用自动化来实现您想要的。

还可以设置位置、添加事件处理程序等

这个接口的文档是here

【讨论】:

  • 您的代码运行良好,我可以设置窗口边界,但是我无法设置 OnQuit 事件。它抛出一个异常说“'System.__ComObject'不包含'OnQuit'的定义”,所以很明显它不是一个InternetExplorer对象。
  • 没关系。我想到了。我必须包含 COM 引用“Microsoft Internet Controls”,然后将事件设置为: ((SHDocVw.InternetExplorer)ie).OnQuit += ExplorerClosed;如果您将此行添加到您的代码中,我很乐意将其标记为答案! ^_^
【解决方案2】:

如果你想实现浏览器自动化,那么你应该使用Selenium webdriver

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    相关资源
    最近更新 更多