900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > c语言弹幕程序怎写 使用C语言实现一个自动刷弹幕的程序

c语言弹幕程序怎写 使用C语言实现一个自动刷弹幕的程序

时间:2023-07-15 04:08:05

相关推荐

c语言弹幕程序怎写 使用C语言实现一个自动刷弹幕的程序

本文使用两种方式来进行刷弹幕操作

1 模拟键盘输入,自动输入文字,然后点击回车。

2 操作剪切板,直接将剪切板的文字粘贴到输入框,然后回车。

模拟键盘输入

如果要输入“弹幕”这两个汉字,一般来说,我们需要分别输入d a n m u 这五个个字母之后,然后按下空格,然后回车。

在windows系统中,模拟键盘输入的系统调用函数是keybd_event();

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

hahahahahaha

shuadanmuchegnxu

shuadanmuchengxu

#include

#include

#include

#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

#include

#include

#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;

}

内容来源于网络如有侵权请私信删除

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。