我正在尝试从 kinect 控制击键。例如,当我的右手向右移动时,表示我按住键盘上的右箭头。我完成了 kinect 的代码编写,但我不知道如何制作自定义键盘设备。我尝试使用SendKey但它不起作用,因为没有保持键命令。我也使用循环,线程,但它也不起作用。我尝试使用 kinect 通过 WPF 应用程序控制谷歌地球。来自 kinect 的任何动作都将转换为键盘的按下或按住,以便它可以控制 google earth 应用程序。有什么建议吗?
最好的问候,
C.Porawat
问问题
541 次
2 回答
1
没有保持键状态或事件。当按住键盘上的一个键时,会产生多个键事件。这个 win32 示例模拟了永远按住的左键:
while(true)
{
INPUT input =
{
INPUT_KEYBOARD
};
KEYBDINPUT tmp =
{
VK_LEFT,
0,
0,
0,
NULL
};
input.ki = tmp;
SendInput(1, &input, sizeof(INPUT));
::Sleep(100);
}
于 2011-03-24T20:37:04.993 回答
1
我得到了答案。通过使用System.Windows.Interop和System.Runtime.InteropServices。然后,使用:
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, IntPtr dwExtraInfo);
然后,当我想使用它时调用键盘事件:
keybd_event(0x27, 0, KEYEVENTF_KEYDOWN, new System.IntPtr()); //press right arrow on the keyboard
于 2011-03-29T03:48:05.270 回答