• 使用C语言实现一个自动刷弹幕的程序


    本文使用两种方式来进行刷弹幕操作
    1 模拟键盘输入,自动输入文字,然后点击回车。
    2 操作剪切板,直接将剪切板的文字粘贴到输入框,然后回车。

    模拟键盘输入

    如果要输入“弹幕”这两个汉字,一般来说,我们需要分别输入d a n m u 这五个个字母之后,然后按下空格,然后回车。
    在windows系统中,模拟键盘输入的系统调用函数是keybd_event();
    如何所示的程序,将文件中的文本一行一行读入到数组中,然后根据文本中的字母来模拟键盘的输入,每输入完一行就输入一个空格和一个回车。bilibili.txt中的文本应该是要输入的弹幕的拼音

    hahahahahaha
    shuadanmuchegnxu
    shuadanmuchengxu
    
    #include <stdio.h>
    #include <windows.h>
    #include <string.h>
    
    #define BILIBILIFILE "C://bilibili.txt"
    void SendFile()
    {
    	FILE *fp = NULL;
    	char buf[1024];
    	fp = fopen(BILIBILIFILE, "r");
    	while (fgets(buf, 1024, fp)) {
    		for (int i = 0; i < strlen(buf); ++i) {
    			if (buf[i] >= 'a' && buf[i] <= 'z') {
    				keybd_event(buf[i] + 'A' - 'a', 0, 0, 0);
    				keybd_event(buf[i] + 'A' - 'a', 0, KEYEVENTF_KEYUP, 0);
    			} else if (buf[i] >= 'A' && buf[i] <= 'Z') {
    				keybd_event(buf[i], 0, 0, 0);
    				keybd_event(buf[i], 0, KEYEVENTF_KEYUP, 0);
    			}
    		}
    		keybd_event(VK_SPACE, 0, 0, 0);
    		keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
    		Sleep(100);
    		keybd_event(VK_RETURN, 0, 0, 0);
    		keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
    	}
    	fclose(fp);
    }
    int main()
    {
    	while (1) {
    		SendFile();
    		Sleep(500);
    		continue;
    }
    

    操作剪切板

    操作剪切板则需要将预先准备好的文本,复制到剪切板,然后按写ctrl + v 这样就能把文粘贴到输入框。
    bilibili.txt中的文本应该是要输入的弹幕

    哈哈哈哈
    刷弹幕程序
    刷弹幕程序
    
    #include <stdio.h>
    #include <windows.h>
    #include <string.h>
    
    #define BILIBILIFILE "C://bilibili.txt"
    
    //将pszData中的数据复制到剪切板
    BOOL CopyToClipboard(const char* pszData, const int nDataLen)
    {
    	if (::OpenClipboard(NULL))
    	{
    		::EmptyClipboard();
    		HGLOBAL clipbuffer;
    		char *buffer;
    		clipbuffer = ::GlobalAlloc(GMEM_DDESHARE, nDataLen + 1);
    		buffer = (char *)::GlobalLock(clipbuffer);
    		strcpy(buffer, pszData);
    		::GlobalUnlock(clipbuffer);
    		::SetClipboardData(CF_TEXT, clipbuffer);
    		::CloseClipboard();
    		return TRUE;
    	}
    	return FALSE;
    }
    //按行读取文件,将每行的数据复制到剪切板,按行按写ctrl+v粘贴,回车输入
    void SendFile()
    {
    	FILE *fp = NULL;
    	char buf[1024];
    	fp = fopen(BILIBILIFILE, "r");
    	while (fgets(buf, 1024, fp)) {
    		CopyToClipboard(buf, strlen(buf));
    		keybd_event(VK_CONTROL, 0, 0, 0);
    		keybd_event('V', 0, 0, 0);
    		keybd_event('V', 0, KEYEVENTF_KEYUP, 0);
    		keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
    		keybd_event(VK_RETURN, 0, 0, 0);
    		keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
    		memset(buf, 0x00, 1024);
    	}
    }
    int main()
    {
    	while (1) {
    		SendFile();
    		Sleep(500);
    		continue;
    }
    
  • 相关阅读:
    monkey Test 环境配置
    python +ps 三方面库整理
    python +selenium +chrome/firefox 环境配置
    react-webpack config webpack@3.4.1
    解决reportNG中文乱码(转:http://www.it610.com/article/3626590.htm)
    (转)Maven的pom.xml文件配置使用
    Maven使用基础
    Myeclipse下配置SVN报错问题 svn: E175002: java.lang.RuntimeException: Could not generate DH keypair(转)
    [转]华为离职副总裁徐家骏的工作感悟
    【转】应用宝基于Robotium自动化测试
  • 原文地址:https://www.cnblogs.com/0x12345678/p/7044322.html
Copyright © 2020-2023  润新知