|
熊谷隆史 さん、こんにちは。あつしです。
詳細なアドバイスありがとうございます。
>objIE.Document.Script.setTimeout "javascript:document.all.item("投 票").click()",1000
>SendKeys "{Enter}"
この命令の意味は、
「1秒後に投票ボタンを押す。」
「Enterキーをアクティヴなウィンドウに送る。」
といった意味ですか?
だとすると、このようにする意味が良くわからないのですが?
それとも、
「投票ボタンを押した一秒後に Enterキーをアクティヴなウィンドウに送る。」
という意味ですか?
setTimeoutを調べてみたけどなんだかよくわかりませんでした。
でも、百聞は一見にしかず。
とりあえず、週末試してみます。
>> SendKeys "{Enter}"
>
>確実に行いたいなら、SendKeysでなくて
>GetLastActivePopup API、PostMessage APIで。
>
>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
>
>--- 中略 ---
> Dim hDlg As Long
> 'ダイアログのウィンドウハンドルを取得。
> Do
> DoEvents
> hDlg = GetLastActivePopup( objIE.hwnd )
> Loop Until hDlg <> objIE.hwnd
>
> 'ダイアログのはいボタン押下
> PostMessage hDlg, WM_COMMAND, vbYes, 0
こちらは、それこそ僕には理解できないのですが、setTimeoutが上手くいかなければ試してみようと思います。
出来れば補足をお願いしたいのですが。
「--- 中略 ---」より上の部分を投票ボタンを押すプロシージャーのあるモジュールの一番上に書き、
「--- 中略 ---」下の部分を投票ボタンをクリックした後に書き込めばいいのですか?
細かいとこまですみませんが、宜しくお願いします。
|
|