C语言实现一个自动刷弹幕的程序
2017-06-18 15:45
477 查看
本文使用两种方式来进行刷弹幕操作
1 模拟键盘输入,自动输入文字,然后点击回车。
2 操作剪切板,直接将剪切板的文字粘贴到输入框,然后回车。
在windows系统中,模拟键盘输入的系统调用函数是keybd_event();
如何所示的程序,将文件中的文本一行一行读入到数组中,然后根据文本中的字母来模拟键盘的输入,每输入完一行就输入一个空格和一个回车。bilibili.txt中的文本应该是要输入的弹幕的拼音
bilibili.txt中的文本应该是要输入的弹幕
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语言:模拟实现一个输入密码自动取款的程序
- c语言:模拟实现一个输入密码自动取款的程序
- C语言实现的一个程序只能运行一次,不能重复运行
- 懒人部署插件实现智能、可视化更新程序,让用户不用一个文件一个文件的拷贝,有效防止少、漏更新,同时实现自动备份覆盖的文件,便于随时还原
- dos下怎样实现一个程序执行完后自动执行另一个程序,不是批处理
- C语言 编写一个c程序实现字符串到数字的转化
- 实现一个鼠标自动按键程序
- C语言实现的一个简单的HTTP程序
- Python实现的一个自动售饮料程序代码分享
- C语言实现的一个简单的HTTP程序
- VC 实现当拖动一个文件到程序的图标上时,程序自动启动并打开该文件
- 在VC程序中实现点击某一文档全路径(如一个Word文档)自动在相关浏览器(MS WORD)中观看
- C语言:一个能自动生成小学四则运算题目的程序
- Python实现的一个自动售饮料程序代码分享
- 用程序来控制一个网页,实现自动输入等操作
- 我自己编的一个c语言小程序:银行基本功能的实现
- C语言实现的一个万年历小程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- c语言实现模拟发送报文改进版(添加程序自动打log)