前言
- 請(qǐng)多關(guān)注我的個(gè)人網(wǎng)站
近一段時(shí)間,狼廠關(guān)于賣(mài)吧的事搞得沸沸揚(yáng)揚(yáng)的.當(dāng)然,我們今天的主題談不是談?wù)撍鼞?yīng)不應(yīng)該賣(mài).勿噴.
互聯(lián)網(wǎng)營(yíng)銷(xiāo)是現(xiàn)在的主要營(yíng)銷(xiāo)方式,用此渠道推廣和營(yíng)銷(xiāo)的方式前提是需要有自己的網(wǎng)站。通過(guò)對(duì)搜索
引擎制定關(guān)鍵字進(jìn)行推廣檬姥。今天我們就搞個(gè)小程序,實(shí)現(xiàn)自動(dòng)無(wú)限點(diǎn)擊廣告的功能(每點(diǎn)擊一次,狼廠就會(huì)收取
廣告商的費(fèi)用,當(dāng)然你最好是使用VPN工具,動(dòng)態(tài)更換IP,哈哈,純屬小技術(shù), 毋用作它途).
-
準(zhǔn)備工作
- Windows環(huán)境
- Visual Studio 2013
先看一下效果(如果沒(méi)有加載出來(lái),可以點(diǎn)擊效果展示鏈接進(jìn)行查看)
知識(shí)儲(chǔ)備
- ShellExecuteA函數(shù)
ShellExecute的功能是運(yùn)行一個(gè)外部程序(或者是打開(kāi)一個(gè)已注冊(cè)的文件雕旨、打開(kāi)一個(gè)目錄糕伐、打印一個(gè)文件等等),并對(duì)外部程序有一定的控制饲宿。若ShellExecuteA函數(shù)調(diào)用成功魁索,則返回值為被執(zhí)行程序的實(shí)例句柄狸吞。若返回值小于32勉耀,則表示出現(xiàn)錯(cuò)誤。
該函數(shù)使用時(shí)需要傳入6個(gè)參數(shù):
_In_opt_ HWND hwnd, 句柄
_In_opt_ LPCSTR lpOperation, 用于指定的操作
_In_ LPCSTR lpFile, 用于指定要打開(kāi)的文件名捷绒、要執(zhí)行的程序文件名或要瀏覽的文件夾名
_In_opt_ LPCSTR lpParameters, 若lpFile參數(shù)是一個(gè)可執(zhí)行程序瑰排,
則此參數(shù)指定命令行參數(shù),否則此參數(shù)應(yīng)為NULL
_In_opt_ LPCSTR lpDirectory, 用于指定默認(rèn)目錄.
_In_ INT nShowCmd 若lpFile參數(shù)是一個(gè)可執(zhí)行程序暖侨,
則此參數(shù)指定程序窗口的初始顯示方式椭住,否則此參數(shù)應(yīng)設(shè)置為0。
nShowCmd這個(gè)參數(shù)常見(jiàn)的常量有:
SW_HIDE 隱藏窗口字逗,活動(dòng)狀態(tài)給令一個(gè)窗口
SW_MINIMIZE 最小化窗口京郑,活動(dòng)狀態(tài)給令一個(gè)窗口
SW_RESTORE 用原來(lái)的大小和位置顯示一個(gè)窗口,同時(shí)令其進(jìn)入活動(dòng)狀態(tài)
SW_SHOW 用當(dāng)前的大小和位置顯示一個(gè)窗口葫掉,同時(shí)令其進(jìn)入活動(dòng)狀態(tài)
SW_SHOWMAXIMIZED 最大化窗口些举,并將其激活
SW_SHOWMINIMIZED 最小化窗口,并將其激活
SW_SHOWMINNOACTIVE 最小化一個(gè)窗口俭厚,同時(shí)不改變活動(dòng)窗口
SW_SHOWNA 用當(dāng)前的大小和位置顯示一個(gè)窗口户魏,不改變活動(dòng)窗口
SW_SHOWNOACTIVATE 用最近的大小和位置顯示一個(gè)窗口,同時(shí)不改變活動(dòng)窗口
SW_SHOWNORMAL 與SW_RESTORE相同
- keybd_event函數(shù)
該函數(shù)合成一次擊鍵事件。系統(tǒng)可使用這種合成的擊鍵事件來(lái)產(chǎn)生WM_KEYUP或WM_KEYDOWN消息
該函數(shù)使用時(shí)需要傳入4個(gè)參數(shù):
BYTE bVk, // 定義一個(gè)虛擬鍵碼叼丑。鍵碼值必須在1~254之間关翎。
BYTE bScan, // 定義該鍵的硬件掃描碼,一般不用設(shè)置,用0代替就行.
DWORD dwFlags, // 定義函數(shù)操作的各個(gè)方面的一個(gè)標(biāo)志位集鸠信。應(yīng)用程序可使用
一些預(yù)定義常數(shù)的組合設(shè)置標(biāo)志位纵寝。如果為keydown則置0即可,如果為keyup則設(shè)成"KEYEVENTF_KEYUP"
DWORD dwExtraInfo // 定義與擊鍵相關(guān)的附加的32位值星立。一般也是置0即可
Action
實(shí)現(xiàn)這個(gè)小功能非常簡(jiǎn)單,大概就是下面這幾步
1.打開(kāi)瀏覽器,輸入`http://www.baidu.com`
2.輸入關(guān)鍵字,比如我們這兒輸入"醫(yī)院"
3.點(diǎn)擊第一條關(guān)鍵字信息
4.關(guān)閉瀏覽器
5.實(shí)現(xiàn)無(wú)線點(diǎn)擊
1.打開(kāi)瀏覽器,輸入http://www.baidu.com
這個(gè)代碼就非常簡(jiǎn)單了,直接上代碼
void openBrowser(char *url)
{
ShellExecuteA(NULL, "open", url, NULL, NULL, 0);
}
直接在main()函數(shù)調(diào)用這個(gè)函數(shù): openBrowser("http://www.baidu.com");
運(yùn)行程序,就會(huì)自動(dòng)打開(kāi)瀏覽器,并進(jìn)入百度首頁(yè),如圖
2.輸入關(guān)鍵字,比如我們這兒輸入"醫(yī)院"
實(shí)現(xiàn)關(guān)鍵字的搜索,主要就是需要利用到keybd_event函數(shù)
void search()
{
keybd_event('Y', 0, 0, 0);//按下
keybd_event('Y', 0, 2, 0);//代表松開(kāi)
keybd_event('I', 0, 0, 0);//按下
keybd_event('I', 0, 2, 0);//代表松開(kāi)
keybd_event('Y', 0, 0, 0);//按下
keybd_event('Y', 0, 2, 0);//代表松開(kāi)
keybd_event('U', 0, 0, 0);//按下
keybd_event('U', 0, 2, 0);//代表松開(kāi)
keybd_event('A', 0, 0, 0);//按下
keybd_event('A', 0, 2, 0);//代表松開(kāi)
keybd_event('N', 0, 0, 0);//按下
keybd_event('N', 0, 2, 0);//代表松開(kāi)
Sleep(30);
// 如果輸入法是搜狗拼音輸入法爽茴,還需要選擇第一個(gè)詞語(yǔ)
keybd_event('1', 0, 0, 0);//按下
keybd_event('1', 0, 2, 0);//代表松開(kāi)
Sleep(30);
keybd_event(0x0D, 0, 0, 0);//按下回車(chē)鍵
keybd_event(0x0D, 0, 2, 0);//代表松開(kāi)
}
3.點(diǎn)擊第一條關(guān)鍵字信息
此時(shí)需要查看你電腦的分辨率來(lái)確定第一條信息大概所處的位置.回到桌面,右擊查看你的分辨率.下面的數(shù)據(jù)是用的我的電腦分辨率(2880 * 1536),記得改成你自己的分辨率即可.
此處有個(gè)注意點(diǎn):我這兒的400*400也是相對(duì)于我電腦分辨率的,大家可以相應(yīng)的做調(diào)整.
void click()
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 400 * 65535 / 2880, 400 * 65535 / 1536, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
4.關(guān)閉瀏覽器
此時(shí),你需要查看你當(dāng)前打開(kāi)的瀏覽器,可以通過(guò)進(jìn)程或者在CMD中輸入tasklist查看其名稱(chēng).由于我是使用的IE瀏覽器,就以IE瀏覽器為例.
void close()
{
system("taskkill /f /im iexplore.exe");
}
5.實(shí)現(xiàn)無(wú)限點(diǎn)擊
最后,就比較easy了,搞個(gè)死循環(huán)即可
int main()
{
while (1)
{
openBrowser("http://www.baidu.com");
Sleep(2000);
search();
Sleep(2000);
click();
Sleep(2000);
close();
}
system("pause");
return 0;
}
聯(lián)系我
<a >github</a>
<a >微博</a>
<a href="http://www.reibang.com/users/9723687edfb5/latest_articles">簡(jiǎn)書(shū)</a>