使用兩種方式來進行刷彈幕操做 1 模擬鍵盤輸入,自動輸入文字,而後點擊回車。 2 操做剪切板,直接將剪切板的文字粘貼到輸入框,而後回車。程序員
若是要輸入「彈幕」這兩個漢字,通常來講,咱們須要分別輸入da n m u 這五個個字母以後,而後按下空格,而後回車。 在windows系統中,模擬鍵盤輸入的系統調用函數是keybd_event(); 編程
如何所示的程序,將文件中的文本一行一行讀入到數組中,而後根據文本中的字母來模擬鍵盤的輸入,每輸入完一行就輸入一個空格和一個回車。bilibili.txt中的文本應該是要輸入的彈幕的拼音windows
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' ) spa
{ keybd_event(buf[i] + 'A' - 'a' , 0, 0, 0); 設計
keybd_event(buf[i] + 'A' - 'a' , 0, KEYEVENTF_KEYUP, 0); }blog
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 ; }