QQ消息量发——c语言

276 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

思路: 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;
}

关系不铁切莫随意恶搞!!!