[問題] 抓取鍵盤輸入

作者: SecondRun (雨夜琴聲)   2017-10-26 00:19:43
※ [本文轉錄自 GameDesign 看板 #1PyBTy13 ]
作者: SecondRun (雨夜琴聲) 看板: GameDesign
標題: [程式] 抓取鍵盤輸入
時間: Thu Oct 26 00:10:29 2017
之前學校在教XNA
判斷key按下那一瞬間的方式是判斷
(現在是否按下key && 前一幀跟現在這幀的鍵盤狀態不相同)
現在想用C++做一樣的效果可是出現問題
測試內容如下
BYTE* p1 = new BYTE[256];
BYTE* p2 = new BYTE[256];
while (1) {
*p2 = *p1;
if (!GetKeyboardState(p1)) cout << "get key fail" << endl;
if (*p1 != *p2) {
cout << "value不同" << endl;
}
}
GetKeyboardState(p1)看起來是成功的
可是p1裡面的值卻一直沒有動
請問是為什麼呢@[email protected]
作者: VictorTom (鬼翼&娃娃魚)   2017-10-26 01:02:00
依據MSDN: https://goo.gl/ZWCHhL該func會吐出Virtual Key"s"的state.你的 (*p1 != *p2) 只會比較第一個key的state
作者: LPH66 (-6.2598534e+18f)   2017-10-26 01:26:00
主要是 *p2 = *p1; 這一行並不是複製陣列, 你需要 memcpy或是如果會用 std::copy() 的話也可以用當然比較就也要用 memcmp 或是 std::equal
作者: SecondRun (雨夜琴聲)   2017-10-26 01:34:00
感謝解惑 明天試試
作者: stupid0319 (徵女友)   2017-10-26 13:54:00
HOOK keyboard message 比較快
作者: SecondRun (雨夜琴聲)   2017-10-26 14:11:00
這個要研究一下,昨天查資料有看到但不太懂

Links booklink

Contact Us: admin [ a t ] ucptt.com