Formタグ内のInput(type = "button")をクリック
【サンプル】
//Internet Explorer操作用タイプライブラリの取り込み(Visual C++ .Net 2003、WindowsXP、IEのVersion = 6.0)
#import "C:\WINDOWS\system32\shdocvw.dll" rename("FindText", "FindTextIE")
#import "C:\WINDOWS\system32\mshtml.tlb" rename("TranslateAccelerator","TranslateAcceleratorHTML")
//IE操作用オブジェクトの宣言
SHDocVw::IWebBrowser2Ptr pIE;
//IEの起動
void Cvc_ie_ClickButtonDlg::OnBnClickedButton1()
{
//IEの起動
pIE.CreateInstance(L"InternetExplorer.Application");
//IEの表示
pIE->PutVisible(VARIANT_TRUE);
//URLを開く
COleVariant oleURL;
oleURL.SetString("http://localhost/vc_ie_FormBtn.html",VT_BSTR);
pIE->Navigate2(oleURL);
}
//Input buttonをクリックする
void Cvc_ie_ClickButtonDlg::OnBnClickedButton2()
{
MSHTML::IHTMLDocument2Ptr pHtmlDoc;
MSHTML::IHTMLFormElementPtr ppvForm;
MSHTML::DispIHTMLInputButtonElementPtr pdispBtn;
IDispatch *ppvdispForm, *ppvdispBtn;
COleVariant data;
//Htmlドキュメントのオブジェクト取得
pHtmlDoc = pIE->GetDocument();
//Formsタグのオブジェクトを取得
MSHTML::IHTMLElementCollectionPtr pHtmlCol = pHtmlDoc->forms;
//特定のFormタグのDispatchオブジェクトを取得
data.SetString("TEST_FORM", VT_BSTR);
pHtmlCol->raw_item(data, vtMissing, &ppvdispForm);
//IHTMLFormElementクラスとFormのDispatchオブジェクトを結合
ppvdispForm->QueryInterface(__uuidof(MSHTML::IHTMLFormElement), (void**)&ppvForm);
//取得したForm内に存在するInput buttonオブジェクトを取得
data.SetString("MyButton",VT_BSTR);
ppvForm->raw_item(data, vtMissing, &ppvdispBtn);
ppvdispBtn->QueryInterface(__uuidof(MSHTML::DispIHTMLInputButtonElement), (void**)&pdispBtn);
//Buttonをクリック
pdispBtn->click();
}
//IEの終了
void Cvc_ie_ClickButtonDlg::OnBnClickedButton3()
{
pIE->Quit();
pIE = NULL;
}
[サンプル・プロジェクト]
(注意)
このサンプルは、Visual C++ .Net、Internet explore 6.0, MFCアプリケーションで作成されています。