资源简介
这是一个c++内web实现模拟登陆,还有获取web事件,以及c++与js的交互。 http://blog.csdn.net/nanjun520/article/details/53024503
代码片段和文件信息
#include “WebAutoLogin.h“
#pragma comment(lib“atl“)
#pragma comment(lib“User32.lib“)
WebAutoLogin::WebAutoLogin(HWND hwndRECT webRc)
{
LPOLESTR pszName=OLESTR(“shell.Explorer.2“);
m_WinContainer.Create(hwnd webRc 0WS_CHILD |WS_VISIBLE);
m_WinContainer.CreateControl(pszName);
HRESULT hr = m_WinContainer.QueryControl(__uuidof(IWebBrowser2)(void**)&m_iWebBrowser);
if(FAILED(hr))
{
MessageBox(hwnd_T(“获取IWebBrowser2 对象失败!!!“)_T(“错误“)MB_OK|MB_IConerror);
m_iWebBrowser = NULL;
}
}
WebAutoLogin::~WebAutoLogin(void)
{
if (NULL != m_iWebBrowser)
{
m_iWebBrowser->Release();
}
}
READYSTATE WebAutoLogin::ReadyState()
{
READYSTATE r = READYSTATE_UNINITIALIZED;
HRESULT hr = m_iWebBrowser->get_ReadyState(&r);
//printf(“get_ReadyState = %d“r);
if (SUCCEEDED(hr) && r == READYSTATE_COMPLETE)
{
}
return r;
}
bool WebAutoLogin::AutoLogin(HWND hwndstd::wstring userNamestd::wstring password)
{
bool isLogin = false;
HRESULT hr = S_OK;
IHTMLElement *user_nameElet= GetHTMLElementByIdOrName(L“username“);
if (user_nameElet!=0)
{
//转换成CComBSTR
CComBSTR bStr =userName.c_str();
//输入内容
hr = user_nameElet->put_innerText(bStr);
user_nameElet->Release();
}
else
{
MessageBox(hwnd_T(“获取:用户名HTMLElement 失败!“)_T(“错误“)MB_OK|MB_IConerror );
}
IHTMLElement *passwdElet= GetHTMLElementByIdOrName(L“password“);
if (passwdElet!=0)
{
//转换成CComBSTR
CComBSTR bStr = password.c_str();
//输入内容
hr = passwdElet->put_innerText(bStr);
passwdElet->Release();
}
else
{
MessageBox(hwnd_T(“获取:密码HTMLElement 失败!“)_T(“错误“)MB_OK|MB_IConerror );
}
IHTMLElement *loginSubElet = GetHTMLElementByTag(L“input“L“value“L“登 录“);
if (loginSubElet!=0)
{
loginSubElet->click();
loginSubElet->Release();
isLogin = true;
}
else
{
MessageBox(hwnd_T(“获取:登陆HTMLElement 失败!“)_T(“错误“)MB_OK|MB_IConerror );
}
return isLogin;
}
bool WebAutoLogin::LoginResult()
{
bool isLogin = false;
IDispatch *dispatch=0;
HRESULT hr = m_iWebBrowser->get_Document(&dispatch);
if ((S_OK==hr)&&(dispatch!=0))
{
IHTMLDocument2 *doc;
hr = dispatch->QueryInterface(IID_IHTMLDocument2(void**)&doc);
dispatch->Release();
if ( S_OK == hr )
{
//登陆成功的 判断方式可以用不同的 方法
BSTR bstrCookie;
hr = doc->get_cookie(&bstrCookie);
if (S_OK == hr)
{
_bstr_t bstr_t(bstrCookie);
std::string strCookie(bstr_t);
::SysFreeString(bstrCookie);
}
BSTR bstrReferrer;
hr = doc->get_referrer(&bstrReferrer);
if (S_OK == hr)
{
if(NULL != bstrReferrer)
{
_bstr_t bstr_t0(bstrReferrer);
std::string strReferrer(bstr_t0);
::SysFreeString(bstrReferrer);
}
}
BSTR bstrUrl;
hr = doc->get_URL(&bstrUrl);
if (S_OK == hr)
{
if(NULL != bstrUrl)
{
_bstr_t bstr_t(bstrUrl);
std::string strUrl(bstr_t);
if (0 == strcmp(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-11-02 22:21 WebAutoLogin\
文件 731 2016-11-01 16:57 WebAutoLogin\resource.h
文件 33976 2016-11-01 17:32 WebAutoLogin\WebAutoLogin.aps
文件 7736 2016-11-01 15:38 WebAutoLogin\WebAutoLogin.cpp
文件 810 2016-11-01 15:37 WebAutoLogin\WebAutoLogin.h
文件 2583 2016-11-01 17:32 WebAutoLogin\WebAutoLogin.rc
文件 4192 2016-11-01 16:58 WebAutoLogin\WebAutoLogin.vcproj
文件 1423 2016-11-02 18:04 WebAutoLogin\WebAutoLogin.vcproj.20150707-1509.Administrator.user
文件 1425 2016-11-02 22:21 WebAutoLogin\WebAutoLogin.vcproj.PC201312221637.Administrator.user
文件 4855 2016-11-05 21:54 WebAutoLogin\WinMain.cpp
目录 0 2016-11-05 21:54 WebEventsMonitor\
文件 5742 2011-05-05 07:24 WebEventsMonitor\Demo.cpp
文件 99501 2011-05-05 07:24 WebEventsMonitor\FastDelegate.h
文件 8686 2011-05-05 07:24 WebEventsMonitor\FastDelegateBind.h
文件 324 2016-11-01 17:22 WebEventsMonitor\GlobalUnit.cpp
文件 144 2016-11-01 17:19 WebEventsMonitor\GlobalUnit.h
文件 781 2016-11-02 16:40 WebEventsMonitor\resource.h
文件 4166 2016-11-02 18:02 WebEventsMonitor\TDocHostUIHandlerImpl.cpp
文件 2578 2016-11-02 17:56 WebEventsMonitor\TDocHostUIHandlerImpl.h
文件 5901 2016-11-01 17:51 WebEventsMonitor\WebEventSink.cpp
文件 2279 2016-11-01 17:29 WebEventsMonitor\WebEventSink.h
文件 33952 2016-11-02 16:40 WebEventsMonitor\WebEventsMonitor.aps
文件 2516 2016-11-02 16:40 WebEventsMonitor\WebEventsMonitor.rc
文件 4752 2016-11-02 18:04 WebEventsMonitor\WebEventsMonitor.vcproj
文件 1423 2016-11-02 18:04 WebEventsMonitor\WebEventsMonitor.vcproj.20150707-1509.Administrator.user
文件 1425 2016-11-02 22:21 WebEventsMonitor\WebEventsMonitor.vcproj.PC201312221637.Administrator.user
文件 12450 2016-11-02 17:52 WebEventsMonitor\WebMonitor.cpp
文件 1570 2016-11-02 17:49 WebEventsMonitor\WebMonitor.h
文件 2851 2016-11-02 18:03 WebEventsMonitor\WinMain.cpp
文件 525 2016-11-02 18:02 test.html
文件 1388 2016-11-01 17:06 Win32CallWeb.sln
............此处省略2个文件信息
- 上一篇:python37_d.lib
- 下一篇:邮件发送程序客户端----VC实现
评论
共有 条评论