none
WebBrowserを使って、webページのフォームへ入力 RRS feed

  • 質問

  • WebBrowserを使って、webページのフォームへ自動で入力したいのですが
    検索して調べたところVC++で書いている人を見つける事が出来ませんでした。


    VBでの書き方は


    WebBrowser1.Document.Forms("form1").DomElement("ABC").value = "XYZ"


    だと分かったのですが、VC++での書き方がわかりません。

     

    VBの書き方を真似して


    WebBrowser1->Document->Forms("form1")->DomElement("ABC")->value = "XYZ";

     

    と書いてみたのですが、以下のようなエラーが出ます。

    error C2064: 1 引数を取り込む関数には評価されません。
    error C2227: '->DomElement' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
    error C2227: '->value' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。


    WebBrowser1->Document->Forms[0]->DomElement[0]->value = 1;

    とやってみても

     

    error C2660: 'System::Windows::Forms::HtmlElement:Big SmileomElement::get' : 関数に 1 個の引数を指定できません。
    error C3915: 'System:Surprisebject' には、既定のインデックス付きのプロパティ (クラス インデクサ) がありません
    error C2065: 'value' : 定義されていない識別子です。

     

    とエラーになります。

     

    どなたかご教授お願い致します。
    Visual Studio 2005 Standard Editionを使っています。

     

    2007年12月7日 6:50

回答

  • MSHTML.DLL『Microsoft HTML Object library』への参照を追加します

     

    テキストボックスへデータを書き込むイベントで

     

    コード ブロック

    mshtml::IHTMLDOcument3^ iDoc =

       (mshtml::IHTMLDocment3^)WebBrowser1->Document->DomDocument;

    mshtml::IHTMLInputTextBoxElement^ t1 =

       (mshtml::IHTMLInputTextBoxElement)iDoc->getElementById("ABC");

    if ( t1 != null ) {

        t1->value = "1";

    }

     

     

    といった具合で動作すると思います

    2007年12月11日 0:23

すべての返信

  • MSHTML.DLL『Microsoft HTML Object library』への参照を追加します

     

    テキストボックスへデータを書き込むイベントで

     

    コード ブロック

    mshtml::IHTMLDOcument3^ iDoc =

       (mshtml::IHTMLDocment3^)WebBrowser1->Document->DomDocument;

    mshtml::IHTMLInputTextBoxElement^ t1 =

       (mshtml::IHTMLInputTextBoxElement)iDoc->getElementById("ABC");

    if ( t1 != null ) {

        t1->value = "1";

    }

     

     

    といった具合で動作すると思います

    2007年12月11日 0:23
  • こんにちは。中川俊輔 です。

     

    redfox63さん、大変参考になるサンプルコードをありがとうございます。

     

    sachi88さんへ

    その後いかがですか?

    大変参考になる回答でしたので、redfox63さんの回答へ回答済みチェックをつけさせていただきました。

    sachi88さんはチェックを解除することもできますので、ご確認ください。

     

    それでは!

    2007年12月25日 6:36