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是一个你自己建立的文本。里面的内容可以自己编写。
扫描二维码