[问题] 抓取键盘输入

楼主: 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