前言
- 请多关注我的个人网站
近一段时间,狼厂关于卖吧的事搞得沸沸扬扬的.当然,我们今天的主题谈不是谈论它应不应该卖.勿喷.
互联网营销是现在的主要营销方式,用此渠道推广和营销的方式前提是需要有自己的网站。通过对搜索
引擎制定关键字进行推广。今天我们就搞个小程序,实现自动无限点击广告的功能(每点击一次,狼厂就会收取
广告商的费用,当然你最好是使用VPN工具,动态更换IP,哈哈,纯属小技术, 毋用作它途).
-
准备工作
- Windows环境
- Visual Studio 2013
先看一下效果(如果没有加载出来,可以点击效果展示链接进行查看)
知识储备
- ShellExecuteA函数
ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。若ShellExecuteA函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。
该函数使用时需要传入6个参数:
_In_opt_ HWND hwnd, 句柄
_In_opt_ LPCSTR lpOperation, 用于指定的操作
_In_ LPCSTR lpFile, 用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名
_In_opt_ LPCSTR lpParameters, 若lpFile参数是一个可执行程序,
则此参数指定命令行参数,否则此参数应为NULL
_In_opt_ LPCSTR lpDirectory, 用于指定默认目录.
_In_ INT nShowCmd 若lpFile参数是一个可执行程序,
则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
nShowCmd这个参数常见的常量有:
SW_HIDE 隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOWMAXIMIZED 最大化窗口,并将其激活
SW_SHOWMINIMIZED 最小化窗口,并将其激活
SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
SW_SHOWNORMAL 与SW_RESTORE相同
- keybd_event函数
该函数合成一次击键事件。系统可使用这种合成的击键事件来产生WM_KEYUP或WM_KEYDOWN消息
该函数使用时需要传入4个参数:
BYTE bVk, // 定义一个虚拟键码。键码值必须在1~254之间。
BYTE bScan, // 定义该键的硬件扫描码,一般不用设置,用0代替就行.
DWORD dwFlags, // 定义函数操作的各个方面的一个标志位集。应用程序可使用
一些预定义常数的组合设置标志位。如果为keydown则置0即可,如果为keyup则设成"KEYEVENTF_KEYUP"
DWORD dwExtraInfo // 定义与击键相关的附加的32位值。一般也是置0即可
Action
实现这个小功能非常简单,大概就是下面这几步
1.打开浏览器,输入`http://www.baidu.com`
2.输入关键字,比如我们这儿输入"医院"
3.点击第一条关键字信息
4.关闭浏览器
5.实现无线点击
1.打开浏览器,输入http://www.baidu.com
这个代码就非常简单了,直接上代码
void openBrowser(char *url)
{
ShellExecuteA(NULL, "open", url, NULL, NULL, 0);
}
直接在main()函数调用这个函数: openBrowser("http://www.baidu.com");
运行程序,就会自动打开浏览器,并进入百度首页,如图
2.输入关键字,比如我们这儿输入"医院"
实现关键字的搜索,主要就是需要利用到keybd_event函数
void search()
{
keybd_event('Y', 0, 0, 0);//按下
keybd_event('Y', 0, 2, 0);//代表松开
keybd_event('I', 0, 0, 0);//按下
keybd_event('I', 0, 2, 0);//代表松开
keybd_event('Y', 0, 0, 0);//按下
keybd_event('Y', 0, 2, 0);//代表松开
keybd_event('U', 0, 0, 0);//按下
keybd_event('U', 0, 2, 0);//代表松开
keybd_event('A', 0, 0, 0);//按下
keybd_event('A', 0, 2, 0);//代表松开
keybd_event('N', 0, 0, 0);//按下
keybd_event('N', 0, 2, 0);//代表松开
Sleep(30);
// 如果输入法是搜狗拼音输入法,还需要选择第一个词语
keybd_event('1', 0, 0, 0);//按下
keybd_event('1', 0, 2, 0);//代表松开
Sleep(30);
keybd_event(0x0D, 0, 0, 0);//按下回车键
keybd_event(0x0D, 0, 2, 0);//代表松开
}
3.点击第一条关键字信息
此时需要查看你电脑的分辨率来确定第一条信息大概所处的位置.回到桌面,右击查看你的分辨率.下面的数据是用的我的电脑分辨率(2880 * 1536),记得改成你自己的分辨率即可.
此处有个注意点:我这儿的400*400也是相对于我电脑分辨率的,大家可以相应的做调整.
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.关闭浏览器
此时,你需要查看你当前打开的浏览器,可以通过进程或者在CMD中输入tasklist查看其名称.由于我是使用的IE浏览器,就以IE浏览器为例.
void close()
{
system("taskkill /f /im iexplore.exe");
}
5.实现无限点击
最后,就比较easy了,搞个死循环即可
int main()
{
while (1)
{
openBrowser("http://www.baidu.com");
Sleep(2000);
search();
Sleep(2000);
click();
Sleep(2000);
close();
}
system("pause");
return 0;
}