本文已参与「新人创作礼」活动,一起开启掘金创作之路
思路:
1、设置发送次数
2、设置发送内容
3、设置想要轰炸的联系人
4、打开粘贴板
5、将要发送的数据写入粘贴板
6、获得该联系人的窗口句柄并将其设置为当前活动窗口
7、使用虚拟按键将数据粘贴至发送框并将其发送
使用方法
首先要打开qq,选择想要轰炸的联系人,并将该窗口打开,如图所示:
接着运行程序,对三个参数进行设定,然后便可对其消息轰炸
虚拟按键 虚拟按键就是通过程序来模拟人为的按键操作,使用keybd_event函数即可,该函数有4个参数,第一个参数为虚拟键码,即你要按下那个键的键码值,第二个参数和第四个参数一般设为0,第三个参数设为0表示按键按下,设为KEYEVENTF_KEYUP表示按键弹起
键码表下载 链接:pan.baidu.com/s/1n8pYrkQF… 提取码:gsab
程序:
#define _CRT_SECURE_NO_WARNINGS
//#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )//屏蔽dos窗口
#include <stdio.h>
#include <windows.h>
void SaveDataToClipboard(char *data,int DataSize)
{
HGLOBAL hClip=0;
HWND ClipboardHwnd=0;
char *ptr = NULL;
if (OpenClipboard(ClipboardHwnd))
{
EmptyClipboard(); //清空剪贴板
hClip = GlobalAlloc(GMEM_MOVEABLE, DataSize + 1);//在堆上分配内存
ptr = (char*)GlobalLock(hClip);//对分配的内存块进行加锁,将内存块句柄转化成一个指针
strcpy(ptr, data);//复制数据
GlobalUnlock(hClip);//解锁
SetClipboardData(CF_TEXT, hClip);//将数据放入剪贴板中
CloseClipboard();//关闭剪贴板
}
}
void Sendmessage()
{
//ctrl + v 粘贴
keybd_event(VK_CONTROL, 0, 0, 0); //按下ctrl键
Sleep(5);
keybd_event(86, 0, 0, 0); //按下v键
Sleep(5);
keybd_event(86, 0, KEYEVENTF_KEYUP, 0); //弹起ctrl键
Sleep(5);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0); //弹起v键
Sleep(5);
//Enter 回车
keybd_event(VK_RETURN, 0, 0, 0); //按下Enter键
Sleep(5);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); //弹起Enter键
Sleep(5);
}
void Turn()
{
int Count = 0; //发送数量
char SendData[100] = { 0 }; //发送数据
char WindownName[100] = { 0 }; //联系人窗口
HWND QQHwnd=0; //qq的窗口句柄
HWND FHwnd=0; //当前活动窗口的句柄
printf("请输入发送数据的次数:\n");
scanf("%d", &Count);
printf("请输入想要发送的数据:\n");
scanf("%s", SendData);
printf("请输入要发送给的联系人名称:\n");
scanf("%s", WindownName);
SaveDataToClipboard(SendData, sizeof(SendData));
while (Count--)
{
QQHwnd = FindWindow("TXGuiFoundation", WindownName); //根据窗口类名与标题获取该窗口的句柄
FHwnd = GetForegroundWindow(); //获取当前活动窗口
if (QQHwnd != FHwnd) //判断QQ窗口是否为当前的活动窗口
{
SetForegroundWindow(QQHwnd); //把QQ窗口设置成当前的活动窗口
}
Sendmessage(); //发送消息
}
}
int main()
{
Turn();
return 0;
}
注:关系不铁切莫随意恶搞!!!