经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
用C语言实现一个自动刷弹幕的小程序
来源:cnblogs  作者:大天使维迦  时间:2021/2/1 12:00:59  对本文有异议

 

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

模拟键盘输入

如果要输入“弹幕”这两个汉字,一般来说,我们需要分别输入da n m u 这五个个字母之后,然后按下空格,然后回车。 在windows系统中,模拟键盘输入的系统调用函数是keybd_event(); 

如何所示的程序,将文件中的文本一行一行读入到数组中,然后根据文本中的字母来模拟键盘的输入,每输入完一行就输入一个空格和一个回车。bilibili.txt中的文本应该是要输入的弹幕的拼音

1 2 3 hahahahahaha shuadanmuchegnxu shuadanmuchengxu

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中的文本应该是要输入的弹幕

如果你也想成为程序员,想要快速掌握编程,赶紧关注小编加入学习企鹅圈子吧!

里面有资深专业软件开发工程师,在线解答你的所有疑惑~编程语言入门“so easy”

资料包含:编程入门、游戏编程、课程设计等。

免费学习书籍:


 

免费学习资料:


 

1 2 3 哈哈哈哈 刷弹幕程序 刷弹幕程序

//将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 ; }

原文链接:http://www.cnblogs.com/zuishuaideou/p/14329993.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号