我写了一个简单的browser,想在一个打开的html网页里,实现自动点击提交按钮(就form里的submit)的功能!? 我写了一个简单的browser,想在一个打开的html网页里,实现自动点击提交按钮(就form里的submit)的功能。要怎样实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.csdn.net/Develop/article/22%5C22030.shtm 试试这段代码#include <atlbase.h>#include <Mshtml.h>#import "C:\\WINNT\\system32\\MSHtml.tlb"void CUrlDownFrm::OnMenuitemTest() { LPDISPATCH lpDispatch; lpDispatch = pHtmlView->GetHtmlDocument(); // 在View类中就用this指针或省略 ASSERT(lpDispatch); CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2; HRESULT hr; hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc2); //此行实现功能 if( SUCCEEDED(hr) ) { //取得文档中的XXXX(表单) CComPtr<IHTMLElementCollection> pElementCol; if (SUCCEEDED(pDoc2->get_forms(&pElementCol))) { // 取得元素个数 long nElementCount=0; if(SUCCEEDED(pElementCol->get_length(&nElementCount))) { for(long i=0;i<nElementCount;i++) { // 取得元素 _variant_t indx = i; CComPtr<IDispatch> spDisp; if(SUCCEEDED(pElementCol->item( indx, indx, &spDisp))) { // 取得元素接口 CComPtr<IHTMLFormElement> pElement; if (SUCCEEDED(spDisp->QueryInterface( IID_IHTMLFormElement,(void **) &pElement))) { // 可能有多个FORM,取出来判断(如果只有一个FORM,循环都可以不要) BSTR bstr; pElement->get_name(&bstr); if(strcmp((char*)(_bstr_t)bstr,"login")==0)//可以通过查看源码,知道FORM的name属性 pElement->submit(); pElement.Release(); } spDisp.Release(); } } } pElementCol.Release(); } pDoc2.Release(); } lpDispatch->Release();} SetTooltipText的问题 update捕捉到异常后该怎么做? 在做支持鼠标拖拉操作时候,如果碰到禁止拖拉,应该让鼠标形状变为一个圈,里面有个斜杠的,这个图标 关于音频数据接收的问题,使用的是UDP 帮忙看看呢 寻找熟悉基于SPI的数据报过滤程序开发的朋友 编译错误,不知道什么原因,请指教 怎么用CListBox.Create()才能建出一个边框不是那种只是黑线的框 控件、分割窗口的样式 MDI子窗口更新问题 有关宏定义的问题 关于调试时:pdb文件错误信息怎么解决?
#include <Mshtml.h>
#import "C:\\WINNT\\system32\\MSHtml.tlb"void CUrlDownFrm::OnMenuitemTest()
{
LPDISPATCH lpDispatch;
lpDispatch = pHtmlView->GetHtmlDocument(); // 在View类中就用this指针或省略
ASSERT(lpDispatch);
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pDoc2;
HRESULT hr;
hr = lpDispatch->QueryInterface(IID_IHTMLDocument2, (void**)&pDoc2); //此行实现功能
if( SUCCEEDED(hr) )
{
//取得文档中的XXXX(表单)
CComPtr<IHTMLElementCollection> pElementCol;
if (SUCCEEDED(pDoc2->get_forms(&pElementCol)))
{
// 取得元素个数
long nElementCount=0;
if(SUCCEEDED(pElementCol->get_length(&nElementCount)))
{
for(long i=0;i<nElementCount;i++)
{
// 取得元素
_variant_t indx = i;
CComPtr<IDispatch> spDisp;
if(SUCCEEDED(pElementCol->item( indx, indx, &spDisp)))
{
// 取得元素接口
CComPtr<IHTMLFormElement> pElement;
if (SUCCEEDED(spDisp->QueryInterface( IID_IHTMLFormElement,(void **) &pElement)))
{
// 可能有多个FORM,取出来判断(如果只有一个FORM,循环都可以不要)
BSTR bstr;
pElement->get_name(&bstr);
if(strcmp((char*)(_bstr_t)bstr,"login")==0)//可以通过查看源码,知道FORM的name属性
pElement->submit();
pElement.Release();
}
spDisp.Release();
}
}
}
pElementCol.Release(); }
pDoc2.Release();
}
lpDispatch->Release();
}