|
↓こんな感じの適当なhtmlファイル(C:\Temp\test.html)を作って、
<input type="button" name="投 票" value="いい加減、疲れた" onclick="confirm('ボーナスまだ?')">
VistaのIE7(XPのIE6なら無関係)だとアクティブコンテンツブロックとかで
ガードされるので、それを解除して、
http://www.mitsuba.co.uk/javascript.html
保護モードを有効にするのチェックも外す。
取り合えず、メッセージダイアログ(ウィンドウハンドルも取れる)の
OKボタン押下出来たのではないかと。
イベントだと、オブジェクトモジュールからで
ないといけないけど、これならその制限も無いってことで。
---
Option Explicit
Private Declare Function GetLastActivePopup Lib "user32" _
(ByVal hwndOwnder As Long) As Long
Private Declare Function PostMessage Lib "user32" _
Alias "PostMessageA" (ByVal hwnd As Long, _
ByVal Msg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Const WM_COMMAND = &H111
Sub test()
Dim hDlg As Long
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.Application")
With objIE
.Visible = True
.navigate "C:\Temp\test.html"
End With
Do
DoEvents
Loop While objIE.Busy
Do
DoEvents
Loop While objIE.Document.ReadyState <> "complete"
objIE.Document.Script.setTimeout "javascript:document.all.item(""投 票"").click()", 1000
'ダイアログのウィンドウハンドルを取得。
Do
DoEvents
hDlg = GetLastActivePopup(objIE.hwnd)
Loop Until hDlg <> objIE.hwnd
'ダイアログのOKボタン押下
PostMessage hDlg, WM_COMMAND, vbOK, 0
End Sub
|
|