VB6にて、ホームページ(以下HP)を起動しています。
VB側のボタンを押下した際
1.初期押下時はHPを起動する。
2.二回目以降は、起動したHPのjavascriptメソッドをキックする。
また、VB側を閉じた際は、同時に起動していたHPも閉じる。
と作成しております。
この一連のメソッドの中で、HPを直接閉じた場合は、
1.VB側のボタンを押下した際、HPを起動し直す
2.VB側を閉じた際、HPを閉じる処理を通さない
の2点を行いたいと考えております。
首題の通り、VB側から起動したHPが起動しているか、閉じているか
を取得するには、どの様に行えばよろしいでしょうか?
よろしくお願いいたします。
> VB6にて、ホームページ(以下HP)を起動しています。
Web サイトを何で起動していますか?
Internet Explorer 限定であればプログラム制御できますが、
どのブラウザーが起動されるのか分からない状態なのであれば、
その操作方法も特定できません。
> この一連のメソッドの中で、HPを直接閉じた場合は、
IE で開いている場合には、起動した InternetExplorer オブジェクトを
WithEvents 変数に格納しておけば、その Quit イベントを使って
ブラウザーの終了を検知できます。
魔界の仮面弁士様、さっそくのご回答ありがとうございます。
Webサイトは、IE限定で作成しております。
>起動した InternetExplorer オブジェクトを WithEvents 変数に格納しておけば、
申し訳ありません。
よろしければ、具体的なコードを教えていただけると助かります。
現在標準モジュール内で作成していますが、
WithEventsを使用する為に、クラスモジュールで作成する必要があるのでしょうか?
>> その 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
魔界の仮面弁士様、ご回答ありがとうございます。
詳しく解説頂いたので、問題無く作成する事が出来ました。
お忙しい中、ありがとうございました。
また何かありましたら、よろしくお願い致します。