いつも勉強させていただいております。
下記のようなiTunesアプリを作っているのですが、IE側の処理を行っている間もiTunesの操作が受け付けられず、処理待ちになってしまいます。
NextProgram()側の処理ではiTunesオブジェクトを参照しないように気をつけているつもりなのですが、何か根本的に間違っているのでしょうか?
(DoEvents処理でも解決されませんでした・・・)
お手数をおかけしますが、ご指導いただければと存じます。
'-----------------------------------------------------------
Dim StriTunesTrName As String
Public Sub BtnChangeArtistTxt(ByVal StriTunesArtistName As String)
'WebからBPMを調査
Dim iTunesApp As New iTunesApp
Dim Track As IITTrack
'〜iTunes側の処理〜
Track = Nothing
iTunesApp = Nothing
NextProgram(TxtText)
End Sub
Public Function NextProgram(ByVal TxtTextAs String)
URL = "" 'HPアドレス
ie = CreateObject("InternetExplorer.application")
ie.Visible = False
ie.Navigate2(URL)
'ページ読み込み待ち
Do While ie.Busy = True
System.Windows.Forms.Application.DoEvents()
Loop
Dim objHtml As mshtml.HTMLDocument
objHtml = ie.Document
'〜IE側での処理〜
ie.Document.forms(0).submit()
ie.Quit()
ie = Nothing
End Function
'-----------------------------------------------------------
DoEvents()をNextProgramする前にも入れてみたら
どうでしょう?
DoEvents()をNextProgramする前にも入れてみたら
どうでしょう?
やじゅさん、コメントありがとうございます。
下記、2箇所にそれぞれ入れてみましたが、残念ながら処理待ち状態は変わりませんでした・・・
'-----------------------------------------------------------
Dim StriTunesTrName As String
Public Sub BtnChangeArtistTxt(ByVal StriTunesArtistName As String)
Dim iTunesApp As New iTunesApp
Dim Track As IITTrack
'〜iTunes側の処理〜
Track = Nothing
iTunesApp = Nothing
System.Windows.Forms.Application.DoEvents() '←追加
NextProgram(TxtText)
System.Windows.Forms.Application.DoEvents() '←追加
End Sub
Public Function NextProgram(ByVal TxtTextAs String)
URL = "" 'HPアドレス
ie = CreateObject("InternetExplorer.application")
ie.Visible = False
ie.Navigate2(URL)
'ページ読み込み待ち
Do While ie.Busy = True
System.Windows.Forms.Application.DoEvents()
Loop
Dim objHtml As mshtml.HTMLDocument
objHtml = ie.Document
'〜IE側での処理〜
ie.Document.forms(0).submit()
ie.Quit()
ie = Nothing
End Function
'-----------------------------------------------------------