Function Reference

_IEFormSubmit

指定したフォームにサブミットします。

#include <IE.au3>
_IEFormSubmit ( ByRef $o_object [, $f_wait = 1] )

 

パラメータ

$o_object InternetExplorer.Applicationのオブジェクト変数、フォームオブジェクト
$f_wait [オプション]ページのロード中に待機するかどうかを指定します
0 = 直ちに処理を返します。ページのロードを待ちません
1 = (デフォルト) ページのロードが完了してから処理を返します

 

返し値

成功: -1を返します
失敗: 0を返し@ERRORを設定します
@Error: 0 ($_IEStatus_Success) = 正常終了
1 ($_IEStatus_GeneralError) = 一般的なエラー
3 ($_IEStatus_InvalidDataType) = 無効なデータ型
4 ($_IEStatus_InvalidObjectType) = 無効なオブジェクト型
6 ($_IEStatus_LoadWaitTimeout) = ロード待機タイムアウト
8 ($_IEStatus_AccessIsDenied) = アクセス拒否
9 ($_IEStatus_ClientDisconnected) = クライアント切断
@Extended: 無効なパラメータの番号が格納されています

 

注意

多くのHTMLフォームでは_IEFormSubmit()を使ってサブミットすることができません。これはサブミットボタンのonClickイベントがJavaScriptコードと関連付けられていることが多いためです。そのような場合、_IEFormSubmit()を使用する代わりにサブミットボタンのクリックをシミュレートする必要があります。_IEAction()の"click"アクションのサンプルを参照してください。
また、フォームの中には他のフォームデータと一緒に渡されるサブミットボタンの"値"に依存して処理をおこなうものがあります(フォームに複数のボタンがあり、押すボタンによって結果が異なる場合など)。この関数はサブミットボタンの値を渡しません。上の場合と同様に_IEAction()の"click"アクションを使用してください。
デフォルトで自動的に呼ばれる_IELoadWaitが誤動作する場合は$f_waitパラメータを0に設定し、_IELoadWaitにInternet Explorerオブジェクトを渡してスクリプト内から呼んでください。

 

関連

_IEFormReset, _IEFormGetObjByName, _IEFormGetCollection, _IEFormElementGetObjByName, _IEFormElementGetCollection, _IELoadWait

 


; *******************************************************
; 例 1 - フォームのサンプルをブラウザで開き、 フォームを埋めてサブミットする
; *******************************************************
;
#include <IE.au3>
$oIE = _IE_Example ("form")
$oForm = _IEFormGetObjByName ($oIE, "ExampleForm")
$oText = _IEFormElementGetObjByName ($oForm, "textExample")
_IEFormElementSetValue ($oText, "Hey! It works!")
_IEFormSubmit ($oForm)

; *******************************************************
; 例 2 - 指定したフォーム要素への参照を取得して、値を設定。
;               今回はGoogle検索エンジンにクエリをサブミット
; *******************************************************
;
#include <IE.au3>
$oIE = _IECreate ("http://www.google.com")
$oForm = _IEFormGetObjByName ($oIE, "f")
$oQuery = _IEFormElementGetObjByName ($oForm, "q")
_IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
_IEFormSubmit ($oForm)

; *******************************************************
; 例 3 - 指定したフォーム要素への参照を取得して、値を設定。
;               デフォルトの_IELoadWaitが誤動作した場合を想定して_IELoadWaitを手動で呼ぶ
; *******************************************************
;
#include <IE.au3>
$oIE = _IECreate ("http://www.google.com")
$oForm = _IEFormGetObjByName ($oIE, "f")
$oQuery = _IEFormElementGetObjByName ($oForm, "q")
_IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
_IEFormSubmit ($oForm, 0)
_IELoadWait($oIE)