1

私は自分のプログラムでこのコードを使用しています...

  System.Diagnostics.Process.Start("www.something.com");

IE でその URL を開きます。ユーザーはページに詳細を入力し、送信ボタンをクリックします。ブラウザはそれらの詳細を他のページにナビゲートしました。ページをナビゲートしながらいくつかの操作を実行したい...

ブラウザのナビゲーションイベントをキャプチャする方法...

4

1 に答える 1

3

別のブラウザー プロセスを起動する代わりに、Web ブラウザー コントロールの使用を検討する必要があります。必要なページに移動し、イベントをキャプチャし、一般的にブラウジング プロセス全体を制御できます。


ASP.NET またはその他の非対話型コンテキストからこれを実行しようとしている場合、答えは大きく異なります。

フォームがそれほど複雑でない場合は、WebClient を使用して URL に投稿し、結果を読み取ってみてください。もう少し複雑な場合は、WebRequest を使用してください。

フォームを本当にブラウザーで実行する必要がある場合 (おそらく JavaScript が必要)、ブラウザーで実行する必要があります。別のプロセスで実行されているブラウザーで発生しているイベントにアクセスすることはできません。また、ASP.NET 内で WebBrowser コントロールを実行することはできません。これは、より高度な処理を行う必要があることを意味します。

WebBrowser コントロールをホストする単純な Windows フォーム アプリケーションを作成するという最初の提案に従うことをお勧めします。そのアプリケーションは、イベントをキャプチャし、IE とのやり取りに必要なその他のことをすべて行うことができます。そのプログラムを ASP.NET と対話させるには、WCF サービスを自己ホストすることをお勧めします。ASP.NET アプリケーションはそのサービスを使用して Winforms アプリケーションと通信し、次に Winforms アプリケーションがブラウザと対話します。

WebBrowser コントロールは 1 つしかないため、WCF サービスが一度に 1 つの要求のみを処理するように強制する必要があります。一度に複数のリクエストを処理する必要がある場合は、winforms アプリケーションのインスタンスを複数作成する必要があります。

于 2013-01-09T14:05:52.637 に答える