C# を使用して、2 つの別々のブラウザーウィンドウを並べて開こうとしています。使用してみましProcess.Start(url)
たが、Chrome が新しいウィンドウではなく新しいタブを開く原因になります。これは IE で動作するようですが、IE、Chrome、Firefox、Safari など、さまざまな種類のブラウザーで動作するコードが必要です。デフォルトのブラウザを検出して、2 つの別々のウィンドウを並べて開くにはどうすればよいですか? さらに、2 つのウィンドウを隣り合わせに配置できるようにしたいのですが、可能ですか?
2 に答える
新しいタブではなくクロムで新しいウィンドウを開きたい場合、このコードはうまくいきました
Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "chrome";
process.StartInfo.Arguments = <yoururl> + " --new-window";
process.Start();
これは、プロセスが C# からどのように呼び出されるかというよりも、ブラウザーの構成方法に関するものです。どちらの場合も、システムは、URL を処理するために割り当てられたデフォルト プログラムを呼び出すだけです。そのコマンドには引数がある場合とない場合がありますが、通常は単に呼び出しchrome.exe <url>
、そこからchrome.exe
プロセスがパラメーターの処理方法を決定します。
私が知っている唯一の方法は、レジストリ ( の下HKEY_CLASSES_ROOT\http\shell\open\command
) を調べて、文字列値を解析することです。特定のブラウザーがわかれば、コマンドライン引数を使用してプレゼンテーションを制御できる場合があります。もちろん、これは Windows 固有のものであり、管理が面倒な場合があります。
ブラウザーがコマンド ラインからのジオメトリの設定をサポートしていない場合は、FindWindowとSetWindowPos (P/Invoke を使用) を使用してウィンドウの位置を操作する必要があります。
あなたのアプリケーションについてはよくわかりませんが、WebBrowser コントロールを埋め込むことでニーズを満たすことができますか? その後、プレゼンテーションを完全に制御できます。