5

C# を使用して、2 つの別々のブラウザーウィンドウを並べて開こうとしています。使用してみましProcess.Start(url)たが、Chrome が新しいウィンドウではなく新しいタブを開く原因になります。これは IE で動作するようですが、IE、Chrome、Firefox、Safari など、さまざまな種類のブラウザーで動作するコードが必要です。デフォルトのブラウザを検出して、2 つの別々のウィンドウを並べて開くにはどうすればよいですか? さらに、2 つのウィンドウを隣り合わせに配置できるようにしたいのですが、可能ですか?

4

2 に答える 2

4

新しいタブではなくクロムで新しいウィンドウを開きたい場合、このコードはうまくいきました

  Process process = new System.Diagnostics.Process();
  process.StartInfo.FileName = "chrome";
  process.StartInfo.Arguments = <yoururl> + " --new-window"; 
  process.Start();
于 2015-07-03T20:27:05.210 に答える
1

これは、プロセスが C# からどのように呼び出されるかというよりも、ブラウザーの構成方法に関するものです。どちらの場合も、システムは、URL を処理するために割り当てられたデフォルト プログラムを呼び出すだけです。そのコマンドには引数がある場合とない場合がありますが、通常は単に呼び出しchrome.exe <url>、そこからchrome.exeプロセスがパラメーターの処理方法を決定します。

私が知っている唯一の方法は、レジストリ ( の下HKEY_CLASSES_ROOT\http\shell\open\command) を調べて、文字列値を解析することです。特定のブラウザーがわかれば、コマンドライン引数を使用してプレゼンテーションを制御できる場合があります。もちろん、これは Windows 固有のものであり、管理が面倒な場合があります。

ブラウザーがコマンド ラインからのジオメトリの設定をサポートしていない場合は、FindWindowSetWindowPos (P/Invoke を使用) を使用してウィンドウの位置を操作する必要があります。

あなたのアプリケーションについてはよくわかりませんが、WebBrowser コントロールを埋め込むことでニーズを満たすことができますか? その後、プレゼンテーションを完全に制御できます。

于 2012-10-31T02:20:01.817 に答える