笔下有余

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

void TForm1::Login()
{
    CppWebBrowser1->Quit();
    IHTMLDocument2 *Htmldoc = NULL ;
    CppWebBrowser1->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&Htmldoc) ;
    IHTMLElementCollection *elc=NULL;
    IHTMLElement *pElement = NULL;

    IDispatch *idp;
    BSTR *obnm;
    BSTR *obtype;
    BSTR *obval;

    long nCount,co;
    IHTMLInputElement *input;
    IHTMLFormElement *iform;
    HRESULT rlt;
    AnsiString txt;
    obnm=new BSTR();
    obtype=new BSTR();
    obval=new BSTR();
    Htmldoc->get_all(&elc);
    elc->get_length(&nCount);
    for(int i=0;i<nCount;i++)
    {
        Variant  X;
        X=i;
        elc->item(X,X,&idp);
        rlt=idp->QueryInterface(IID_IHTMLInputElement,(void **)&input) ;
        idp->Release();
        if(rlt==S_OK)
        {
         input->get_name(obnm);
            txt=AnsiString(*obnm).LowerCase();
            if(txt=="账号")
            {
             *obval=WideString(strUser).c_bstr();
                input->put_value(*obval);
            }
            if(txt=="密码")
            {
             *obval=WideString(strPWD).c_bstr();
                input->put_value(*obval);
            }
        }
    }
    for(int i=0;i<nCount;i++)
    {
     Variant  X;
        X=i;
        elc->item(X,X,&idp);
        rlt=idp->QueryInterface(IID_IHTMLFormElement,(void **)&iform) ;
        idp->QueryInterface(IID_IHTMLElement,(void **)&pElement) ;
        idp->Release();
        if(rlt==S_OK)
        {
            pElement->get_id(obnm);
            txt=AnsiString(*obnm).LowerCase();
            txt=AnsiString(*obnm).LowerCase();
            if(txt=="登录")
            {
             iform->submit();
            }
        }
    }
    delete obnm;
    delete obtype;
    delete obval;
    Htmldoc->Release();

}

posted on 2009-12-15 14:20  笔下有余  阅读(4949)  评论(0)    收藏  举报