ここから本文です

投票受付終了まであと2日 ベストアンサーにふさわしい回答に投票してください

投票すると知恵コイン5枚プラスされます。

VS2019 VB.netのwebbrowserについて質問です。

tnk********さん

2019/11/2700:00:03

VS2019 VB.netのwebbrowserについて質問です。

環境
windows10
VS2019のwindows Form アプリケーション


あるサイトをwebbrowserに表示して「追加」ボタンを押すプログラムを作っています。
おおまかな流れは以下になります。

Dim myDoc As System.Windows.Forms.HtmlDocument = WebBrowser1.Document
Dim myEle As System.Windows.Forms.HtmlElement

myEle = myDoc.GetElementById("new-XX-XX")

For Each Element As HtmlElement In Me.WebBrowser1.Document.Body.GetElementsByTagName("INPUT")

If Element.GetAttribute("type") = "button" Then
If Element.GetAttribute("Value") = "追加" Then
If Element.OuterHtml.IndexOf("button XX") <> -1 Then
Element.InvokeMember("click")
Application.DoEvents() ←ここで止まる
Exit For
End If
End If
End If
Next


1週間前までは何の問題もなく実行できていたのですが、
最近になりInvokeMember("click")後のApplication.DoEvents()で
処理が止まり、フリーズしてしまいます。

一番不思議なのはVB.netの開始ボタンから実行すると
1回目は必ず上記の個所で止まり、デバッグを中止したのち、
何も変更せず2回目の開始ボタンを押して実行させると
何の問題もなく普通に処理できているところです。

原因が分かる方がいらっしゃいましたら
ご教授いただけないでしょうか。

以上、よろしくお願いいたします。

閲覧数:
26
回答数:
1

違反報告

回答

1〜1件/1件中

2019/11/2709:08:27

>Application.DoEvents()で処理が止まり、フリーズしてしまいます。

DoEventsの動作に関して何か勘違いをされているようですね

VBA DoEvents 関数
https://www.tipsfound.com/vba/05doevents


なぜそこにDoEventsを入れているのかその意図は分かりませんが、それがフリーズの原因と考えているのであれば
Application.DoEvents() この一行自体を抜くかコメント扱いにすればいいだけですね

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる