还有问题!如何在IE里实现自动填表功能? 请教高手!现在有某些自动填表工具可以自动向网页文本框里添加信息,这是如何实现的呢?是基于句柄的吗?请给些资料或者思路啊!谢谢谢谢谢谢啊~~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用IE Helper与IE协同工作,能自动填写浏览器中显示的表格(源程序)小辉程序员之路 http://www.chinaithero.com/down2/neteork/form_fill_ie.zip //////////////////////////////////////////////////////////Fill input field in IE//If it works, it is written by masterz,otherwise I don't//know who writes it^_^///////////////////////////////////////////////////////#import <mshtml.tlb> // Internet Explorer 5#import <shdocvw.dll>#include "Shlwapi.h"#pragma comment(lib,"Shlwapi.lib")int _tmain(int argc, _TCHAR* argv[]){ CoInitialize(NULL); SHDocVw::IShellWindowsPtr m_spSHWinds; if(m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) == S_OK) { IDispatchPtr spDisp; long nCount = m_spSHWinds->GetCount(); for (long i = 0; i < nCount; i++) { _variant_t va(i, VT_I4); spDisp = m_spSHWinds->Item(va); SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); if (spBrowser != NULL) { IDispatchPtr spDisp; if(spBrowser->get_Document(&spDisp) == S_OK && spDisp!= 0 ) { MSHTML::IHTMLDocument2Ptr spHtmlDocument(spDisp); MSHTML::IHTMLElementPtr spHtmlElement; if(spHtmlDocument==NULL) continue; spHtmlDocument->get_body(&spHtmlElement); if(spHtmlDocument==NULL) continue; HRESULT hr; MSHTML::IHTMLElementCollection* pColl=NULL; hr=spHtmlDocument->get_all(&pColl); if(pColl!=NULL&&SUCCEEDED(hr)) { long lcount = 0; pColl->get_length(&lcount); for(int i=0;i<lcount;i++) { _variant_t index; index.vt=VT_I4; index.intVal=i; IDispatchPtr disp; disp=pColl->item(index,index); if(disp==NULL) hr=E_FAIL; else { MSHTML::IHTMLInputElementPtr pInput(disp); if(pInput) { BSTR bstrtype; pInput->get_type(&bstrtype); printf(_bstr_t(bstrtype)); if(StrCmpW(bstrtype,L"text")==0) { pInput->put_value(_bstr_t("fill it")); printf("fill a field\n"); } SysFreeString(bstrtype); } } } pColl->Release(); } } } } } else { printf("Shell Windows interface is not avilable\n"); } CoUninitialize(); return 0;} 看到帖子内容区有广告一点看帖回帖的心情都没了!!! SQLite在wince下,可以用变量名来做数据库名吗? 问一个菜菜的问题 VS2005 专业版和企业版有哪些区别? 关于CArray 的问题 急啊,组播问题??? 菜鸟问题004:如何用VC实现最大化,最小化功能。 用ado编程中的sql语句有错误,希望高手能解救我! VC是使用ado调用数据库的问题(delete的问题)! 请问在哪可以下载中文的msdn library? 请教CDC::DRAWTEXT()的使用 在用户界面线程里建立了一个对话框,为什么将对话框关闭了,但线程仍不结束?(临贴涕泠,以待回复)
//Fill input field in IE
//If it works, it is written by masterz,otherwise I don't
//know who writes it^_^
///////////////////////////////////////////////////////
#import <mshtml.tlb> // Internet Explorer 5
#import <shdocvw.dll>
#include "Shlwapi.h"
#pragma comment(lib,"Shlwapi.lib")
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
SHDocVw::IShellWindowsPtr m_spSHWinds;
if(m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) == S_OK)
{
IDispatchPtr spDisp;
long nCount = m_spSHWinds->GetCount();
for (long i = 0; i < nCount; i++)
{
_variant_t va(i, VT_I4);
spDisp = m_spSHWinds->Item(va);
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp);
if (spBrowser != NULL)
{
IDispatchPtr spDisp;
if(spBrowser->get_Document(&spDisp) == S_OK && spDisp!= 0 )
{
MSHTML::IHTMLDocument2Ptr spHtmlDocument(spDisp);
MSHTML::IHTMLElementPtr spHtmlElement;
if(spHtmlDocument==NULL)
continue;
spHtmlDocument->get_body(&spHtmlElement);
if(spHtmlDocument==NULL)
continue;
HRESULT hr;
MSHTML::IHTMLElementCollection* pColl=NULL;
hr=spHtmlDocument->get_all(&pColl);
if(pColl!=NULL&&SUCCEEDED(hr))
{
long lcount = 0;
pColl->get_length(&lcount);
for(int i=0;i<lcount;i++)
{
_variant_t index;
index.vt=VT_I4;
index.intVal=i;
IDispatchPtr disp;
disp=pColl->item(index,index);
if(disp==NULL)
hr=E_FAIL;
else
{
MSHTML::IHTMLInputElementPtr pInput(disp);
if(pInput)
{
BSTR bstrtype;
pInput->get_type(&bstrtype);
printf(_bstr_t(bstrtype));
if(StrCmpW(bstrtype,L"text")==0)
{
pInput->put_value(_bstr_t("fill it"));
printf("fill a field\n");
}
SysFreeString(bstrtype);
}
} }
pColl->Release();
}
} }
} }
else
{
printf("Shell Windows interface is not avilable\n");
}
CoUninitialize();
return 0;
}