資源簡介
這是一個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實現
評論
共有 條評論