VB6にて起動したホームページが閉じた事を認識するには?

解決


こう  2011-05-09 10:51:07  No: 102891  IP: [192.*.*.*]

VB6にて、ホームページ(以下HP)を起動しています。

VB側のボタンを押下した際
1.初期押下時はHPを起動する。
2.二回目以降は、起動したHPのjavascriptメソッドをキックする。
また、VB側を閉じた際は、同時に起動していたHPも閉じる。
と作成しております。

この一連のメソッドの中で、HPを直接閉じた場合は、
1.VB側のボタンを押下した際、HPを起動し直す
2.VB側を閉じた際、HPを閉じる処理を通さない
の2点を行いたいと考えております。

首題の通り、VB側から起動したHPが起動しているか、閉じているか
を取得するには、どの様に行えばよろしいでしょうか?

よろしくお願いいたします。

編集 削除
魔界の仮面弁士  2011-05-09 15:16:02  No: 102892  IP: [192.*.*.*]

> VB6にて、ホームページ(以下HP)を起動しています。
Web サイトを何で起動していますか?

Internet Explorer 限定であればプログラム制御できますが、
どのブラウザーが起動されるのか分からない状態なのであれば、
その操作方法も特定できません。


> この一連のメソッドの中で、HPを直接閉じた場合は、
IE で開いている場合には、起動した InternetExplorer オブジェクトを
WithEvents 変数に格納しておけば、その Quit イベントを使って
ブラウザーの終了を検知できます。

編集 削除
こう  2011-05-09 16:50:18  No: 102893  IP: [192.*.*.*]

魔界の仮面弁士様、さっそくのご回答ありがとうございます。

Webサイトは、IE限定で作成しております。

>起動した InternetExplorer オブジェクトを WithEvents 変数に格納しておけば、
申し訳ありません。
よろしければ、具体的なコードを教えていただけると助かります。

現在標準モジュール内で作成していますが、
WithEventsを使用する為に、クラスモジュールで作成する必要があるのでしょうか?

編集 削除
魔界の仮面弁士  2011-05-09 18:30:24  No: 102894  IP: [192.*.*.*]

>> その Quit イベントを使って
間違えました。m(_ _;)m

「Quit」は IE を閉じるためのメソッドです。
終了通知は「OnQuit」イベントです。


> 具体的なコードを教えていただけると助かります。


Option Explicit

Private WithEvents IE As SHDocVw.InternetExplorer

Private Sub Form_Load()
    Set IE = Nothing
    Command1.Enabled = True
    Command1.Caption = "&IEで開く"
    Text1.Text = "http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi"
End Sub

Private Sub Command1_Click()
    Command1.Enabled = False
    'Set IE = CreateObject("InternetExplorer.Application")
    Set IE = New SHDocVw.InternetExplorer
    IE.Top = 0
    IE.Left = 0
    IE.Width = 640
    IE.Height = 480
    IE.Navigate2 Text1.Text
    IE.Visible = True
End Sub

Private Sub IE_OnQuit()
    Set IE = Nothing
    Command1.Enabled = True
End Sub

'Private Sub Form_Unload(Cancel As Integer)
'    If Not IE Is Nothing Then
'
'        Dim Title As String
'        On Error Resume Next
'        Title = "(" & IE.Document.Title & ")"
'        On Error GoTo 0
'
'        Dim ret As VbMsgBoxResult
'        ret = MsgBox("IE が起動中です。" & Title & vbCrLf & vbCrLf & "一緒に閉じますか?", vbYesNoCancel Or vbQuestion)
'        If ret = vbCancel Then
'            Cancel = 1
'        ElseIf ret = vbOK Then
'            IE.Quit
'        End If
'    End If
'End Sub

編集 削除
こう  2011-05-09 20:50:47  No: 102895  IP: [192.*.*.*]

魔界の仮面弁士様、ご回答ありがとうございます。

詳しく解説頂いたので、問題無く作成する事が出来ました。
お忙しい中、ありがとうございました。

また何かありましたら、よろしくお願い致します。

編集 削除