C语言编写发送弹幕神器
最任性的
C语言发送弹幕
01
背景
现在我们看视频,比如在B站学习,或者爱奇艺,等等视频,看到想吐槽的时候不免想发送弹幕来抒发一下此时此刻的心情,而且,有的人看视频的时候,就喜欢看别人发送的弹幕,可以说,弹幕已经是目前比较流行的网络媒体文化。
那我们想要让电脑自己实现发送弹幕的功能,需要怎么做呢?
02
思路
如果我们发送一个弹幕,需要做的是哪些步骤呢。
点击发送弹幕的输入框,使得光标到达输入框,然后输入需要发送的文字,按回车键。这个时候就算是发送成功一个弹幕。
那如果我们用程序如何实现呢?
首先,有一些限制,就是程序自己找到弹幕的输入框是有些难度,为了降低难度,我们需要帮助程序找到发送弹幕的输入框,其次,就是发送的内容,为了让发送的文字可控,我能可以将发送的文字写入一个txt文本文档中。那我们的程序就需要读取文档,并将文档复制到粘贴板,每次只读取一行文字。我们平常的复制,粘贴的快捷键这个时候就可以用到了。
Ctrl+C是复制,Ctrl+V是粘贴。
当明白这些之后,我们的思路就大致理清楚了,用程序复制一段文字,粘贴到发送弹幕的输入框,点击回车键发送。
然后循环,执行以上步骤,就实现了自动发送弹幕的流程。
思路很单纯,我们看看程序如何实现这个步骤。
03
源码
bool copy2Bord(const char *data, int len){if (OpenClipboard(NULL)){EmptyClipboard();HGLOBAL clipBuffer = GlobalAlloc(GMEM_DDESHARE,len + 2);char *buff = (char*)GlobalLock(clipBuffer);strcpy(buff,data);GlobalUnlock(clipBuffer);SetClipboardData(CF_TEXT,clipBuffer);CloseClipboard();return true;}else{return false;}}void sendDM(){FILE *fp;fp = fopen(FILE_NAME, "r");if (fp == NULL){printf("打开文件失败:%s 失败", FILE_NAME);return;}char buff[LINE_COUNT];while (fgets(buff, sizeof(buff), fp)){while (!copy2Bord(buff, strlen(buff)-1)){}mouse_event(MOUSEEVENTF_LEFTDOWN |MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);Sleep(20);keybd_event(VK_CONTROL,0,0,0);Sleep(20);keybd_event('V', 0, 0, 0);Sleep(20);keybd_event('V', 0, KEYEVENTF_KEYUP, 0);Sleep(20);keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);Sleep(20);keybd_event(VK_RETURN, 0, 0, 0);Sleep(20);keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);memset(buff,0,sizeof(buff));Sleep(TIME_SPAN);}fclose(fp);}int main(){printf("准备好了吗?\n");system("pause");printf("5秒后开始\n ");Sleep(5000);while (1){sendDM();}return 0;}
注意:代码中dm.txt是一个你自己建立的文本。里面的内容可以自己编写。
扫描二维码
