2

Google Chromeタブ、またはデフォルトのブラウザを開きたい。次に、ユーザーがそうすることを選択した後、それを閉じます。

使ってます

Process.Start("HTTP://www.MySite.Com");

ブラウザを開くには、ブラウザを閉じるためのハンドルがありません。また、ブラウザ全体を閉じたくはありません。開いたタブだけを閉じます。

4

1 に答える 1

5

これはFirefoxで私のために働きます:

var proc = Process.Start("firefox.exe", "http://www.google.nl");
proc.Kill();

Firefoxを1ウィンドウモードに設定しているので、タブが開きます。Kill()メソッドを発行すると、このタブは強制終了されます(メインウィンドウは強制終了されません)。この場合、Close()メソッドは機能しませんでした。

Chromeでも同じことができます。URL自体ではなく、実際のプログラムへの引数としてURLを指定する必要があります。そうしないと、procはnullになります。

デフォルトのブラウザを使用した完全な例を次に示します。

        string browser = string.Empty;
        RegistryKey key = null;
        try
        {
            key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command");

            //trim off quotes
            if (key != null)
            {
                browser = key.GetValue(null).ToString().ToLower().Trim(new[] { '"' });
            }
            if (!browser.EndsWith("exe"))
            {
                //get rid of everything after the ".exe"
                browser = browser.Substring(0, browser.LastIndexOf(".exe", StringComparison.InvariantCultureIgnoreCase) + 4);
            }
        }
        finally
        {
            if (key != null)
            {
                key.Close();
            }
        }
        Process proc = Process.Start(browser, "http://www.google.nl");
        if (proc != null)
        {
            proc.Kill();
        }
于 2012-05-22T12:10:50.777 に答える