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アプリケーションで作成されています。