複数のブラウザ(aXWebBrowserコントロール)を単一のwinformsアプリケーションプロセスから制御して、同じリモートWebサイトをターゲットにするが、リモートサイトとの独自のセッションスコープに存在する各ブラウザをプログラミングする方法は?WinFormsアプリケーションでaXWebBrowserコントロールを使用してセッションを区切りますか?
ゴール - ウェブサイトの使用を自動化するアプリケーションを作成します。目標は、アプリケーションが同じWebサイト上のブラウザと対話する最大5人のユーザーの作業を行うことです。
表示される課題 - 各ブラウザインスタンスは、リモートWebサイトから送信された「セッション」データを共有します。その結果、さまざまなブラウザが実際の複数の人間のユーザのように行動することができなくなります。いくつの異なるaXWebBrowserコントロールがインスタンス化されても、それぞれはセッションコンテキストを失い、最後/最新/最も最近インスタンス化されたブラウザによって確立されたセッションコンテキストを共有します。つまり、最後に起動されたコントロールは、それに先行するすべてのコントロールの確立されたセッションコンテキストを破棄します。
は、すでに 試みがあります - 以下のいずれかのレジストリキーを追加する 'マイクロソフト\インターネットエクスプローラ\ HKCUの\ソフトウェア\メイン' へ:TabProcGrowth = DWORD:0、FrameMerging = DWORD:0、SessionMerging = DWORD:0。私のデスクトップのアイコン(アプリの外側)からIE8を起動すると、うまくいきます。IE8は必要に応じて動作します。ただし、axWewbBrowserコントロールを使用してアプリケーションを実行すると機能しますが、レジストリ設定はaxWebBrowserコントロールには影響しません。アプリケーションの外で拒否された動作を確認する他の方法には、IE8ファイルメニューの「新規セッション」をクリックし、-nomergeでiexplore.exeを起動する方法があります。 axWebBrowserコントロールは通信にWininetを使用するため、これらはアプリケーション内では機能しません。
制約 - すでにので、理想的なソリューションは、新しいコントロールで再書き込まれるようにコードを必要としませんaXWebBrowserコントロール(Internet ExplorerのActiveXの自動化Webブラウザ)を使用して書かれており、作業はかなりのコードがあります。 - ソリューションが見つかると、アプリケーションはブラウザウィンドウをワークステーションユーザーに表示します。 - winformsアプリケーション(.NET 2.0)がコントロールをホストしています - ブラウザーはすべて同じリモートWebサイトをターゲットにしています。
サンプルコード(IE8がインストールされている)を試しましたが、すべてのブラウザコントロールが実際に同じセッションを共有しています。 – Vizu