c++制作CSDN登录界面点赞神器

中所周知,CSDN的登录界面会有一个点赞按钮,而且点赞次数还可以累加,我在写代码的时候就喜欢这样反复点(上班摸鱼),甚至创造了这样的记录(估计也就我这么闲了吧):

 为了创造历史新高(应该除我以外没有人会这么无聊),我用c++写了一个自动刷赞器(应该只有我会把c++这样玩),代码如下:

首先,老规矩,看今天要用到的函数或算法。

本代码原理就是反复模拟鼠标左击,这是个老知识了啊(又是一篇水文),因为我最近都在研究这个,所以本篇不做详解,直接看代码:

模拟鼠标左键按下:

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);

模拟鼠标左键松开:

mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);

但是发现一个问题,就是CSDN登录界面每次点一个赞之后,等待大约一秒后才能点下一个。哎,那只能加上Sleep函数了:

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main(){
	Sleep(2000);
	while(1){
		mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模拟鼠标左击
		Sleep(20); 
		mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
		Sleep(1000);
	}
	return 0;
}

呵呵,真的很好玩。但是如果玩着玩着,领导来了,看见我在上班时间玩这玩意,估计今晚晚饭就是炒鱿鱼了。所以,我们可以做一个当鼠标滚轮按下时将写代码界面显示的代码:

函数:

1、检测鼠标滚轮按下函数:

KEY_DOWN(MOUSE_WHEELED)

 注意要加头文件“#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)”。

2、将窗口显示在最前端,并全屏:

自定义函数

void full_screen(HWND hwnd){
    int cx=GetSystemMetrics(SM_CXSCREEN);
    int cy=GetSystemMetrics(SM_CYSCREEN);
    SetWindowPos(hwnd,HWND_TOPMOST,0,0,cx,cy,SWP_NOMOVE|SWP_NOSIZE);
}

 完整代码:

#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
void full_screen(HWND hwnd){//将窗口最大化并在最前端 
    int cx=GetSystemMetrics(SM_CXSCREEN);
    int cy=GetSystemMetrics(SM_CYSCREEN);
    SetWindowPos(hwnd,HWND_TOPMOST,0,0,cx,cy,SWP_NOMOVE|SWP_NOSIZE);
}
int main(){
	Sleep(2000);//请在两秒内将开发工具窗口置顶 
	HWND hwnd=GetForegroundWindow();//存储开发工具窗口句柄   
	Sleep(2000);//请在两秒内将鼠标移动至点赞按钮所在位置 
	while(!KEY_DOWN(MOUSE_WHEELED)){//直到滚轮键按下结束循环 
		mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模拟鼠标左击
		Sleep(20); 
		mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
		Sleep(1000);
	}
	full_screen(hwnd);
	return 0;
}

为了将窗口置顶,我是费劲了千辛万苦,终于找到了正确方法。但是之后我才发现,我们也可以将网页窗口隐藏:

#include<bits/stdc++.h>
#include<windows.h>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
using namespace std;
int main(){
	Sleep(2000);//请在两秒内将鼠标移动至点赞按钮所在位置 
	while(!KEY_DOWN(MOUSE_WHEELED)){//直到滚轮键按下结束循环 
		mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//模拟鼠标左击
		Sleep(20); 
		mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
		Sleep(1000);
	}
	ShowWindow(GetForegroundWindow(),0);
	return 0;
}

写好了,本篇文章就到这里,欢迎大家留言建议。

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值