初めて(VB).NETでWPFに入り込み、MS Access VBAを開始したプロジェクトを再作成しようとしています。基本的には、Webアプリケーション内で一連のページをスクラップします。あなたが推測しているように、私はLoadCompletedイベントに問題があります。複数のNavigate()呼び出しの間にWebBrowserが完全にロードされるのを待つ
私はそれについていくつかの情報を検索して見つけましたが、コードの "流れ"は、1ページが読み込まれるのを待つことに役立ちます。たとえば:
http://social.msdn.microsoft.com/Forums/nn-NO/wpf/thread/52c1bc55-dd41-468c-8759-a42726635d4b
コード実行のすべては、あなただけの1ページに移動し、コードを実行する必要がある場合に正常に動作DocumentLoadedイベントで実行されます。しかし、私は自分のアプリケーションのためにこれらの一連のサイクルを実行する必要があります。
どのようにして、同じサブでコードが実行されたままでドキュメントが完全に読み込まれ、UIスレッドがロックされないようにするにはどうすればよいですか?
ここに私がしようとしていることの基本的な考えがあります。 .NETは私にとって非常に新しいです - 完全
PSを繰り返し、
- 移動
- ページを待ちます私の脳にスタックオーバーフローを与えないでください)
ありがとう、 ブライアン
- ## EDIT ## -
これは私がVBAで行うために使用するものです。これはまさに私がやろうとしていることです。ちょうど ".NET"の方法で、UIスレッドをブロックすることなくです。
Dim oIE = New SHDocVw.InternetExplorer With oIE .Navigate(strURL) .Visible = False ' loop until the page finishes loading Do While oIE.Busy : Loop Do While oIE.ReadyState <> 4 : Loop 'Code goes here to read DOM, get fields and click a button (logging in to site) 'My code execution is done and now I'm ready to go to the next page and read the DOM .Navigate(strURL) End With
。 。 。
これだけです。 n回繰り返す。私のDOMとの相互作用は大きく異なっています。
dbaseman、返信ありがとうございます。残念ながら、私がナビゲートしているURLはわかりません。言い換えれば、必要なURLの数とURL自体は、各「サイクル」後に動的に生成されます – brian
@brian gotcha。それは原理的に同じではないでしょうか? ** getNextUrl()**の実装をいくつか呼び出すだけです。 – McGarnagle
ああ、そうだ。あなたは、私がリストを反復している間に、その場でアイテムをリストに追加できると言っています。しかし、各URLの私の行動(コード)は異なります。私はちょうど巨大なSELECT ...各URLを扱うケースを持っているつもりですか?リストの次のページになるまで私はURLを知らないので、ブラウザの現在のURLを適切なコードブロックにどのように一致させることができますか?私は十分に質問をしてくれることを願っています。私はあなたの時間を助けてくれてありがとう。ありがとうございました。 – brian