使用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;
}
使用C语言实现一个自动刷弹幕的程序的更多相关文章
- B站自动刷弹幕
B站自动填弹幕(附带createEvent消息机制) 昨晚看的比赛真的要气死我.RNG 居然又输了... 为了LPL...我写了一个为LPL加油的脚本.希望大家能和我一起为LPL加油! 脚本代码如下: ...
- 手把手教你用C++ 写ACM自动刷题神器(冲入HDU首页)
转载注明原地址:http://blog.csdn.net/nk_test/article/details/49497017 少年,作为苦练ACM,通宵刷题的你 是不是想着有一天能够荣登各大OJ榜首,俯 ...
- python网课自动刷课程序-------selenium+chromedriver
python的强大之处就在于有许多已经写好的功能库提供,这些库强大且易用,对于写一些有特定功能的小程序十分方便. 现在就用pyhton的selenium+谷歌游览器写一个可以自动刷课的程序,以智慧树上 ...
- HDU 自动刷题机 Auto AC (轻轻松松进入HDU首页)
前言: 在写这篇文章之前,首先感谢给我思路以及帮助过我的学长们 以下4篇博客都是学长原创,其中有很多有用的,值得学习的东西,希望能够帮到大家! 1.手把手教你用C++ 写ACM自动刷题神器(冲入HDU ...
- 语言模拟ATM自动取款机系统
C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输入: ...
- 狗扑论坛 自动刷取VIP狗粮
狗扑论坛 自动刷取VIP狗粮 开始闲狗粮回复太慢就自己想了想去写一个,成功总是给我的哈哈. 自己花了一小时 时间慢慢学就慢慢写的 虽然代码简单 但是已经够自己用了 using System; usi ...
- 【BZOJ-4590】自动刷题机 二分 + 判定
4590: [Shoi2015]自动刷题机 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 156 Solved: 63[Submit][Status ...
- BZOJ4590 自动刷题机
Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动 刷题机刷题的方式非常简单:首先会瞬间得出题目的正确做法,然后开始写 ...
- 三极管的妙用之C118自动刷机
首先咱们要搞清楚咱们自动刷机的原理,不谈修改固件那么高深的东西,简单的就是控制开机键. 使用继电器来控制基本上算是上个世纪的想法吧,之前博主也做过,做出来的感觉其实也很不错,就像是一个收藏品.因为继电 ...
随机推荐
- 刷机魅蓝note2
直接上了. 情况: 魅蓝note2 公共版 忘记flyme 密码,手机号也换了,,找不回了..只能刷了.网上说就算刷了也不行,还是要输入flyme 密码 1. 直接刷官方的zip 包,不行,仍然要输 ...
- hive 优化方法
https://blog.csdn.net/jiangsanfeng1111/article/details/52847044 -- 高级优化 使用各种函数hive>show functions ...
- 组件内守卫beforeRouteEnter和beforeRouteLeave
beforeRouteEnter用法和其他守卫差不多. 有个注意的地方就是beforeRouteEnter不能用this获取组件内收据. 在next()方法内存入vm这个参数,获取组件内数据. bef ...
- Educational Codeforces Round 58 (Rated for Div. 2) D 树形dp + 数学
https://codeforces.com/contest/1101/problem/D 题意 一颗n个点的树,找出一条gcd>1的最长链,输出长度 题解 容易想到从自底向长转移 因为只需要g ...
- Paper | 深度网络中特征的可迁移性
目录 1. 核心贡献 2. 实验设置 2.1. 任务设置 2.2. 网络设置 3. 实验结果 4. 启发 论文:How transferable are features in deep neural ...
- alfred3配置
搜索功能配置 github https://github.com/search?utf8=%E2%9C%93&q={query} github'{query}' g baidu http:// ...
- Jquery操作文档标签
1.插入动作 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- RabbitMq相关
RabbitMq 通过通过IP,Port等参数创建connection对象,然后实际上通信用的是channel,channel的建立基于connection RPC 调用: RPCClient通过ch ...
- 手把手教你利用Python自动下载CL社区图片
需求描述: 最近发现CL社区上好多精华的帖子分享的图片非常棒,好想好想保存下来,但是一张一张地保存太费时间了,因此,造物者思想主义的我就想动手写个工具,实现只要输入帖子的链接,就能把所有的精华 ...
- G++与C++的区别
C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已. 不同的编译器,会对代码做出一些不同的优化 比如说: a++; 和 ++a; 如果从标准C的角度去理解.a++这个 ...