我有這一點代碼,它使用SendInput發送按鍵,但它不起作用,當我想長時間保持一個鍵(例如長按'a'會返回'aaaaaaaaa '在記事本中)。SendInput不能用於保持鍵C++
現在我已經看過了所有的谷歌和我可以看到解決這個問題的唯一方法是不斷髮送輸入,如果我想長時間擱置。我不想這樣做,因爲這隻會模擬一遍一遍又一遍的「a」。
keyboard.wVk = 0;
keyboard.wScan = MapVirtualKey(key, 0);
keyboard.dwFlags = KEYEVENTF_SCANCODE;
if (index_vector_no)
pressed[index_vector_no] = true;
keyboard.dwExtraInfo = 0;
input.type = INPUT_KEYBOARD;
input.ki = keyboard;
SendInput(1, &input, sizeof (input));
所以我想一些答案了以下問題:
A)我是正確的思維有解決這個使用SendInput沒有辦法,爲什麼不它長期持有工作? B)什麼是成功地發送按鍵和按鍵信號的另一種方法。最好將密鑰發送到窗口,而不僅僅是發送給特定的應用程序。
C)有一個很好的輕量級C++庫,我可以用它來處理全局鍵盤和鼠標模擬嗎?
在此先感謝! =)
編輯:看看這個帖子我的問題的更多細節:http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_20833788.html
這是用於Windows的嗎?你使用VC++嗎? –
模擬它被多次按下,你的問題是什麼?我能想到的唯一原因就是需要改變的地方就是...一扇窗戶。 – chris
是的,它在窗戶上。我只是用普通的C++和.cpp文件結尾。如果它有所作爲,我使用MinGW編譯器! @Chris這將用於控制一個遊戲,所以它最終會與這個人一起向前移動 Thanks =) – geekman92