MFC實現自動填寫表單與自動提交表單

         自動填寫表單和自動提交表單可以利用在網頁裏自動註冊,自動發帖,還可以讓程序跟網頁互動,這功能的使用還是比較廣泛的,我說一下我一般用的自動填表跟自動提交表單的一些技巧,這些技巧,你可以結合一些擴展思維來做更多的事情,自動填寫表單關鍵找到變量的name,提交表單關鍵找到form的submitname和form的name。

1.新建一個Dlg對話框MFC程序

2.在對話框裏面拉如一個WebBrowser控件爲其關聯控件變量,變量名爲m_expweb.m_web。

3.增加3個按鈕,分別爲:“打開網頁”、”自動填寫“、“提交表單”,同時爲3個按鈕添加消息響應

4.增加1個編輯框1個靜態文本,爲了方便操作給編輯框關聯變量

5.在dlg的cpp文件的頭部包含頭文件

#include <MsHTML.h>

6.在“打開網站”按鈕的消息響應中添加如下代碼:

CComVariant vtUrl("www.baidu.com");//網頁地址
CComVariant	vtEmpty;
m_expweb.Navigate2(&vtUrl, &vtEmpty, &vtEmpty, &vtEmpty, &vtEmpty);//打開網頁

7.在“自動填寫”按鈕的詳細響應中添加如下代碼:

long State = m_expweb.get_ReadyState();//獲取網頁狀態
while(State != READYSTATE_COMPLETE ) //判斷網頁是否加載完成
{
			State = m_expweb.get_ReadyState();
} 
CComQIPtr<IHTMLDocument3> spDocument = m_expweb.get_Document();//獲取網頁接口
//CComQIPtr<IHTMLInputElement> spInputElement;
CComPtr<IHTMLElement> spElement;
////////////////內容//////////////////////////////////
spDocument->getElementById(L"kw", &spElement);//input name=填寫帳號框的ID名
spInputElement = spElement;
spInputElement->put_value(_T("https://blog.csdn.net/nonecode"));//把內容輸入進框裏
spElement.Release();//釋放資源,不釋放資源會造成程序崩潰

8.在“提交表單”按鈕的消息響應中添加如下代碼:

CComQIPtr<IHTMLDocument3> spDocument = m_expweb.get_Document();//獲取網頁接口
//CComQIPtr<IHTMLInputElement> spInputElement;
CComPtr<IHTMLElement> spElement;
spDocument->getElementById(("su"), &spElement);//submit name=su
spElement->click();//實現點擊

9.總結如何查看文本框和按鈕以及超鏈接的方式

//用瀏覽器的審查元素查看百度的html控件ID
<input id="kw" name="word" class="s_ipt" value="" maxlength="255" autocomplete="off">
這個是編輯框的元素

<input type="submit" id="su" value="百度一下" class="bg s_btn">
這個是按鈕的元素

按鈕id:su
1.用IHTMLDocument的GetElementById函數獲取到控件ID並鎖定控件
2.用IHTMLElenment裏的click()函數實現點擊

文本框id:kw
1.用IHTMLDocument的GetElementById函數獲取到控件ID並鎖定控件
2.IHTMLElenment裏的put_value()函數實現文本輸入

spInputElement->put_value(_T("https://blog.csdn.net/nonecode"));//把內容輸入進框裏
3.最後spElement.Release();//釋放資源,不釋放資源會造成程序崩潰

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章