2009-04-03 14 views
1

私はブラウザを起動し、何らかの作業をしてから、ブラウザをURL(その順番)にナビゲートさせる必要があります。
最初の部分はもちろん単純ですが、私はProcessオブジェクトを持っています。後でそれをターゲットページに誘導する方法については迷っていますか?
ブラウザを起動して後でページに誘導するには?

プロセスをブラウザとして扱い、目的のページにナビゲートするにはどうすればよいですか? ヘルプ、ポインタ、コードスニペットが感謝します。

+0

を、なぜあなたは、ブラウザを起動する必要があります最初に、必要な計算に続いてURLで直接起動するのではなく、 – Rob

+0

私はRobに同意します。「何らかの作業をする」とは何か、なぜブラウザを開いて待ってからページに移動する必要があるのか​​説明できますか?なぜこの順序でそれをしないのですか?(1)仕事をしてください。 (2)URLでブラウザーを起動しますか? – JohnFx

+0

私はこの挑戦に初めて直面しており、驚くほど困難であることが証明されています。"仕事"はブラウザのプロセスオブジェクトと同じものなので、順番に実行する必要があります。 –

答えて

0

IEの実際のインスタンスが必要ない場合は、System.Windows.Forms.WebBrowserコントロールを使用できます。

+0

実際、私はそれをデスクトップ版のアプリケーションに使用しています。 Webアプリケーションでは、m/cでデフォルトブラウザを使用する必要があります。 –

+0

MohitC:これが「Webアプリケーション用」の場合、エンドユーザのマシンでProcessオブジェクトを取得する方法はどうですか?これは制御された(イントラネット)環境にありますか?私は明らかにシナリオを理解していない。 –

+0

アプリケーションはローカルで実行されますが、ブラウザを起動する必要があるため、プロセスオブジェクトを取得することはwinformをホストするアプリケーションと同じように動作します。 –

0

ブラウザにURLを送信する代わりに、ブラウザを実行してブラウザをサイトに誘導するjavascriptを送信できると思います。

ない、これがうまくいくかどうかわから私はそれがこの質問のための私の最初の本能はDDEなかった

+0

質問は後でProcessオブジェクトを使用するための_how_についてですが、それはそれがそのブラウザのように動作するようにします。 URLまたはJSを送信することは同じことです。 –

+0

プロセスを起動するときに引数として渡すことはできませんでしたか?私はあなたの要求を誤解しているかもしれないと思う。 –

+0

そのオプションはここにはありません。私が質問で言ったように - 1.ブラウザを起動する必要があります 2.いくつかの作業を行います 3.ブラウザをURL の順にナビゲートします。 –

1

だろうが、それは良くないので、それはWindows Vistaで廃止されています表示されない理由を見ません。それはWindowsでプロセス間通信(IPC)のための唯一の一貫したメカニズムだったので...恥ずかしがり屋...私はアミーガでArexxを逃す方法。

とにかく、私は次のことはうまくいくと思いますが、残念ながら、それは動作するため、設定されたブラウザに関係なくInternet Explorerを起動します。

  1. アプリケーションにフォームがある場合は、WebBrowserコントロールを作成します。 Webページを表示するのではなく、起動デバイスとしてのみ使用しているため、これを非表示に設定してください。次のコードを使用し、Webページを表示したいポイントでのコードで
  2. 、:

    webBrowser1.DocumentText = "window.open( 'How to launch a browser and later direct it to a page?'、 'BananasAreOhSoYummyを');";これは何

は「BananasAreOhSoYummy」と呼ばれる新しいウィンドウを開くために、ちょうど変装してIEでWebBrowserコントロールを、伝えることです。ウィンドウに名前を付けるので、そのURLを繰り返し使用して、その特定のブラウザウィンドウ内のページを変更することができます。

ユーザーのデフォルトブラウザの選択肢を尊重するアプローチについて考えてみましょう。

3

ブラウザを起動して&に移動する代わりに、ページに移動する代わりに、URLを実行することをOSに指示してください。 Windowsは正しいブラウザを選択し、ユーザーを指定されたURLに移動します。

System.Diagnostics.Process.Start("http://www.StackOverflow.com"); 
+0

私は別の同じ答えを与えたコメントを貼り付ける - 私が質問で言ったように - 1.ブラウザを起動する必要がある2.何らかの作業をする3.ブラウザをURLにナビゲートさせる_ –

2

本番でこれを行う必要がない場合は、あなたがこれを行うためにそのようなWatiNとしてテストライブラリを使用することができます。興味のあるうち

using WatiN.Core; 

//Placeholder page to launch initial browser 
IE ie = new IE("http://www.google.com"); 

DoSomeWork(); 

//Now navigate to the page you want 
ie.GoTo("http://stackoverflow.com"); 
+0

私はそれをデモの目的で使用するかもしれませんが、mgmtが商用アプリケーションに統合されることから確実に撃退されます。とにかくありがとう。 –

+0

@MohitC - はい、あなたはこれをテストに使用したかったと思います。これは生産ソリューションには適していません。私はそれを反映するために私の答えを更新します。 –

関連する問題