C语言学习day25:WinAPI 微信消息群发器原理分析

原理

群发消息原理分析
微信:
方向键上下可以移动聊天对象
回车键可以发送消息
总结:只要能够在微信窗口上,自动按下键盘,就可以实现群发消息

思路

Windows操作系统是一个:消息驱动式系统 消息机制

我们按下键盘会有键盘消息,按下鼠标会有鼠标消息,这种消息相当于喊话,告诉系统用户做了什么

所以,只要能够给 微信 窗口发送键盘消息,就可以实现群发信息

函数

SendMessage()函数

语法

LRESULT SendMessage(
[in] HWND hwnd
[in] UINT MSg;
[in] WPARAM wParam,
[in]LPARAM lParam
);

解析

HWND hWnd=窗口的句柄

UINT Msg=要发送的消息

(需要的朋友可以在微软官方查看)About Messages and Message Queues - Win32 apps | Microsoft Learn

WPARAM wParam=键值(按下的什么键)。其他特定于消息的信息(一般可填0)

(需要的朋友可以在微软官方查看)

虚拟键码 (Winuser.h) - Win32 apps | Microsoft Learn

LPARAM lParam=其他特定于消息的信息(一般填0)

获取窗口名称:

 

 

就能获取了。

函数2

keybd_event()函数

语法

void keybd event(
[in] BYTE bVk
[in] BYTE bScan
[in] DWORD dwFlags,
[in] ULONG_PTR dwExtraInfo
);

解析

按下什么键:

参数一:虚拟密钥代码

参数二:密钥的硬件扫描代码(一般不用填)

参数三:控制函数操作的名个方面。 此参数可使用以下一个或多个值,
例如:按下鼠标,或是释放(弹起)鼠标。

代码:

#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <stdio.h>

void main()
{
	// 获取微信窗口句柄
	//  HWND hWnd = FindWindowA(NULL, "微信");
	HWND hWnd = FindWindowA(NULL, "微信");
	if (!hWnd)
	{
		MessageBoxA(NULL, "未找到微信窗口!", "错误", MB_ICONERROR);
		return;
	}
	else
	{
		printf("成功%d", hWnd);
	}
	// 发5个
	for (int i = 0; i <= 5; i++)
	{
		// 粘贴消息--发送
		// 按下Ctrl和v
		keybd_event(VK_CONTROL, 0, 0, 0);
		keybd_event(0x56, 0, 0, 0);
		// 松开ctrl和v
		keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
		keybd_event(0x56, 0, KEYEVENTF_KEYUP, 0);
		// 休息200ms
		Sleep(200);
		// 下一个
		SendMessageA(hWnd, WM_KEYDOWN, VK_DOWN, 0);

		//发送
		keybd_event(VK_RETURN,0,0,0);
		keybd_event(VK_RETURN,0,KEYEVENTF_KEYUP,0);

		Sleep(200);
	}

	return;
}

// ز
// Զ
//

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值