【问题标题】:Check if browser closed manually检查浏览器是否手动关闭
【发布时间】:2012-12-30 14:22:22
【问题描述】:

在 Visual Studio 2010 中,使用 c#;

我打开浏览器:

private IE browser;

private void Set_Browser()
{
    string splashUrl = "google.com";
    browser= new IE(splashUrl);
}

如果用户(人)不小心关闭了浏览器,那么我的应用程序将无法再工作。

问题:

  1. 那么如何检查用户是否手动关闭了浏览器?
  2. 我能否通过将浏览器添加到我的 应用程序 GUI 作为控件? [使用 Windows 窗体]
  3. -> 我该怎么做?

与此帖子相关的最后一个问题How to use watin with WebBrowser control?(2 岁,但也没有像样的答案)

编辑:给出 URL 中的解决方案似乎有效。问题是,如果我尝试将 WebBrowser.ActivateX.. 作为对象发送给其他类。然后我的 browser = new IE(..) 返回 null。当我在表单类中实例化它时它确实有效。有什么解决办法吗?

【问题讨论】:

标签: c# internet-explorer browser instance watin


【解决方案1】:

您可以每隔 x 秒搜索一次 Internet Explorer 的进程,并使用此代码查看浏览器是否已经在运行:

    bool isRunning = false;
    foreach (Process clsProcess in Process.GetProcesses()) {
            if (clsProcess.ProcessName.Contains("iexplore"))
            {
                    isRunning = true;
                    break;
            }
    }

您可以使用this article

或者您可以使用this article向您的应用程序添加浏览器控件

【讨论】:

  • 这是否也涵盖了仅关闭相关选项卡而不关闭浏览器本身的情况?
  • 嗯,不是,需要进一步研究:)
  • 请回复,但这还不够。如果我关闭 WatiN 实例化的浏览器并自己手动打开一个新的 IE,程序会崩溃。因为它找不到特定的选项卡,即使有一个 IE 实例正在运行。
  • 关于文章,您可以将 Webbrowser 类的实例作为控件添加到您的 GUI。但我不知道(也没有提到)如何将 WatiN 的 IE(网络浏览器)实例添加到我的控件中
【解决方案2】:

您可以做的一件事是隐藏浏览器以避免用户关闭它。请参阅这个 SO 问题。

Hiding Internet Explorer when WatiN is run

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 2012-09-18
    • 2012-08-31
    • 1970-01-01
    相关资源
    最近更新 更多