以编程方式将键盘命令发送到应用程序

时间:2013-03-11 13:55:51

标签: c# multithreading kinect keyboard-events sendkeys

我有以下代码,使用kinect实现:

 private void ProcessForwardBackGesture(Joint head, Joint rightHand, Joint leftHand, Joint hip, Joint leftKnee, Joint rightKnee)
    {
        if (rightHand.Position.X > head.Position.X + 0.45)
        {
                OnGestureDetected("SwipeToRight");
                System.Windows.Forms.SendKeys.SendWait("{Right}");
        }
        if (leftHand.Position.X < head.Position.X - 0.45)
        {
               OnGestureDetected("SwipeToLeft");
               System.Windows.Forms.SendKeys.SendWait("{Left}");
        }
        if (rightHand.Position.Y > (hip.Position.Y + 0.20))
        {
            OnGestureDetected("UP");
            System.Windows.Forms.SendKeys.SendWait("{Up}");
        }
        if (rightHand.Position.Y < (hip.Position.Y - 0.20))
        {
            OnGestureDetected("DOWN");
            System.Windows.Forms.SendKeys.SendWait("{Down}");
        }
        if ((leftKnee.Position.Y > hip.Position.Y - 0.30))
        {
            OnGestureDetected("Space");
            System.Windows.Forms.SendKeys.SendWait("{Space}");
        }
        if ((rightKnee.Position.Y > hip.Position.Y - 0.30))
        {
            OnGestureDetected("Alt");
            System.Windows.Forms.SendKeys.SendWait("{Alt}");
        }

    }

OnGestureDetected函数显示控制台中发生的情况。 现在,如果我保持姿势,在控制台中,该键将出现,直到我离开那个姿势。 在记事本中,如果我有一个长文本,它会按照我的姿势定义的方向继续滚动。 但是在3D游戏或者java游戏(带有chrome)中,它只会产生一个冲动,然后什么都不做。我怎么能让它保持冲动。我想创建一个能够用kinect玩赛车游戏的程序。

0 个答案:

没有答案