呵呵,刚写了个钉钉刷赞器,这儿又来个QQ刷屏器。
毕竟只是玩玩的,不要当真!!
(刷的是同一内容。)
使用方法:
1.打开QQ聊天窗口,将光标放在输入框;
2.关闭中文输入法;
3.启动程序,输入内容、次数、秒速(可不填);
4.按下回车,控制台立即隐藏。在输入框单击就开刷了。
5.注意:刷的时候不要动鼠标!!
#include <stdlib.h>
#include <conio.h>
#include <Windows.h>
#include <stdexcept>
#include <iostream>
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000 ? 1:0 ))
#define STR_MAX 512 //刷屏内容上限
#define SPD_MAX 32 //秒速上限
using namespace std;
VOID KeyP(BYTE bVk)
{ //Press
keybd_event(bVk,0,0,0);
}
VOID KeyR(BYTE bVk)
{ //Release
keybd_event(bVk,0,2,0);
}
VOID KeyPR(BYTE bVk)
{
keybd_event(bVk,0,0,0);
keybd_event(bVk,0,2,0);
}
VOID PutFormatToClipboard(UINT clipFormat,LPSTR str)
{ //剪贴板操作
if (!OpenClipboard(NULL)||!EmptyClipboard())
{
throw runtime_error(string{"PutFormatToClipboard():打开或清空剪切板出错!\n"}); //如果有警告那么就把{}改成()或用c++11
return;
}
HGLOBAL hMen;
hMen=GlobalAlloc(GMEM_MOVEABLE,((strlen(str)+1) * sizeof(char))/*sizeof(strText)*/);
if (!hMen)
{
throw runtime_error(string{"PutFormatToClipboard():分配全局内存时出错!\n"});
CloseClipboard();
return;
}
LPSTR lpStr=(LPSTR)GlobalLock(hMen);
memcpy(lpStr,str,(strlen(str) * sizeof(char)));
lpStr[strlen(str)]=(char)0;
GlobalUnlock(hMen);
SetClipboardData(clipFormat,hMen);
CloseClipboard();
return;
}
int main()
{
char text[STR_MAX];
int isCon=0;
float speed=4;
UINT count=1;
SetConsoleTitle("QQ刷屏器");
system("mode con cols=30 lines=20");
do {
system("cls");
system("color 0B");
cout<<" QQ简易刷屏工具\n\n";
cout<<"1. 输入内容: ";
cin>>text;
cout<<"\n2. 输入次数: ";
cin>>count;
cout<<"\n3.是否设置秒速(默认4次/秒)?\n[按 1:是 / 其它:否] ";
int ch=getch();
switch(ch)
{
case '1':
do{
cout<<"\n\n输入秒速(0.25~32):";
cin>>speed;
if(speed < 0.25f || speed > SPD_MAX)
cout<<"\n不符合范围(0.25~32)!\n";
}while(speed < 0.25f || speed > SPD_MAX);
break;
default:
break;
}
PutFormatToClipboard(CF_TEXT,text);
Sleep(700);
system("cls");
system("color 0E");
cout<<"\n\n准备就绪。在输入框单击以开始刷屏.\n";
Sleep(500);
ShowWindow(GetConsoleWindow(),SW_HIDE);
while(!KEY_DOWN(MOUSE_MOVED)); //等待鼠标单击
MessageBeep(MB_ICONINFORMATION);
Sleep(700);
for(int i=1;i<=count;i++)
{
KeyP(VK_LCONTROL);
KeyPR('V');
KeyR(VK_LCONTROL);
Sleep(10);
KeyP(VK_LCONTROL);
KeyPR(VK_RETURN);
KeyR(VK_LCONTROL);
Sleep(DWORD(1000.0 / speed - 10.0f));
}
Sleep(1000);
ShowWindow(GetConsoleWindow(),SW_SHOW);
MessageBeep(MB_ICONINFORMATION);
system("cls");
system("color 0A");
cout<<"刷屏成功!\n";
Sleep(200);
cout<<"是否继续?";
Sleep(30);
cout<<"[按 1:是 / 其它:否]";
int ch2=getch();
if(ch2 == '1')
isCon=true;
else
isCon=false;
}while(isCon);
return 0;
}
最大秒速 32Hz ,挺快的!
我一开始不知道剪贴板操作,用的是 程序编辑txt ->打开记事本 -> 快捷键全选复制 -> taskkill关闭记事本 来复制,特别麻烦,现在用剪贴板操作方便多了。
欢迎点赞打赏!!!!