基于C语言库windows.h的轰炸程序

这篇博客介绍了一个C++程序,用于自动向指定窗口(如昵称为'明月'的窗口)发送信息。程序通过Windows API函数FindWindow找到目标窗口,然后使用SendMessage函数进行粘贴内容和模拟回车键发送信息。用户可以通过命令行输入发送次数,或者直接在代码中预设。注意,此程序需要在VS2019环境下运行,且需修改默认字符集以避免连接错误。
摘要由CSDN通过智能技术生成

目录

主要思路

代码实现

分段描述

头文件

变量设置

循环

注意事项


主要思路

  1. 确定发送信息的次数,可以用int类型的变量
  2. 确定要发送信息的对象,利用windows.h库连接对应的窗口
  3. 将复制的内容粘贴在发送区,并发送
  4. 根据步骤1确定的次数重复步骤3

代码实现

#include <stdio.h>
#include <Windows.h>
int main()
{
	int Message_num;
	scanf_s("%d", &Message_num); //根据命令行输入的数字设置发送信息的次数

	//int Message_num=2;//也可直接设定发送信息次数

    HWND window; //定义一个窗口句柄变量
	window=FindWindow(NULL, "明月"); //设置发送对象,将对应窗口赋给window

	while (Message_num > 0)
	{
		SendMessage(FindWindow(NULL, "明月"), WM_PASTE, NULL, NULL); //粘贴

		SendMessage(FindWindow(NULL, "明月"), WM_KEYDOWN, VK_RETURN, NULL); //发送

		Message_num--;
	}
	return 0;
}

分段描述

头文件

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

第一个是常用的输入输出库

第二个是窗口库,这个库可以做连接窗口,发送信息的一些操作,下面我们将会详细讲解其中用到的两个函数

变量设置

    int Message_num;
    scanf_s("%d", &Message_num); //设置发送信息的次数
    HWND window;
    window=FindWindow(NULL, "明月"); //设置发送信息对象,只需要将"明月"改为所要发送信息的窗口名称即可

//此处要修改默认字符集,详细操作请看注意事项

设置两个变量,一个是int类型,一个是HWND类型,HWND类型属于windows.h库内

FindWindow("窗口类名","窗口标题名"),在本例中就是用到窗口标题名查找对应的窗口,窗口类名可以填"NULL",通过这个函数我们就可以连接到要发送信息的窗口对象,本例中也就是昵称为明月的用户,连接窗口后方便我们进行下一步的粘贴和发送。

循环

while (Message_num > 0)
    {
        SendMessage(window, WM_PASTE, NULL, NULL); //粘贴

        SendMessage(window, WM_KEYDOWN, VK_RETURN, NULL); //发送

        Message_num--;
    }

循环次数为我们输入的数,这个数也就是发送信息的次数。

SendMessage("指定要接收消息的窗口的句柄","指定被发送的消息","指定附加的消息特定信息","指定附加的消息特定信息")

 WM_PASTE就是将剪贴板中的内容粘贴到对应窗口的发送区,本例对应窗口就是window.

WM_KEYDOWN:当一个非系统键被按下时该消息发送给具有键盘焦点的窗口(凡是ALT和其它键一同按下的组合称为“系统键”,非系统键就是不按下ALT键时的按键,比如单一按键)

VK_RETURN:虚拟键盘代码,代表回车键,此处也就是非系统键。

注意事项

本例编译环境为VS2019

  • VS2019在使用scanf输入时会产生报错,将scanf换成scanf_s即可。
  • 本例测试利用企鹅测试,测试前请复制相应的内容
  • 需要修改默认字符集为使用多字节字符集,否则会导致无法连接到窗口,无法达到效果

右击阴影处,选择属性

 

 字符集的设置也可能在常规里,版本不同位置可能会出现一定差异

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值