2

C# を使用して、ブラウザーをポップ アンダーとして開くようにしようとしています。基本的に、ユーザーがブラウザーを起動したことを検出しています。その直後に、ユーザーが開いたウィンドウの下にある新しいブラウザー ウィンドウを開きたいと考えています。これが私がこれまでに持っているものです:

url = "example.com";
Process[] pname = Process.GetProcessesByName("chrome");

if (pname.Length == 0) // if the user didn't start chrome
{
    chrome = false;
}
else // if chrome is running
{
    if (!chrome) // if the browser wasn't opened before and it was opened just now.
    {
        Process process = new Process();
        process.StartInfo.FileName = "chrome";
        process.StartInfo.Arguments = url;
        process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
        process.Start();
        //Process.Start("chrome", url);
    }

    chrome = true;
}

ただし、これにより、新しいウィンドウで開いたり、新しいタブで開いたりすることがあります。おそらく、ブラウザなどを起動する別の方法を使用する必要がありますか? ありがとう!

4

2 に答える 2

4

外部プログラム (この場合は Chrome) を呼び出すときは、「その規則に従う」必要があります。Chrome の引数 ( list here )を見ると、--new-window必要なものが提供されます。したがって、コードで次の変更を実行する必要があります。

process.StartInfo.Arguments = url + " --new-window";

完全に制御したい場合は、おそらく独自のブラウザー ( WebBrowser Classなど) を作成する必要があります。

于 2013-10-13T14:20:27.270 に答える
0

私が提案するのは、URL をファイル名として使用することです。これを行うと、システムはパスが Web の場所であることを自動的に検出し、ユーザーの既定のブラウザーを起動するためです。これは、ブラウザーが既に開いているかどうかも判断し、開いている場合は、新しいウィンドウを起動する代わりに、そのウィンドウで開きます。

ほとんどの人は、Internet Explorer を起動するプログラム、またはあなたの場合は Chrome を起動するプログラムよりも、これを好みます。

あなたの質問は少し漠然としていますので、これがあなたの求めている答えであるかどうかお知らせください。

于 2013-10-13T14:08:37.383 に答える