按下按钮X秒?

时间:2011-08-02 12:50:22

标签: c#

我试过

keybd_event(keyByte, 0, KEYEVENTF_KEYDOWN, 0);

Thread.Sleep(3000);

keybd_event(keyByte, 0, KEYEVENTF_KEYUP, 0);

但它只按一下并暂停,我希望它模拟按住按钮。例如,如果我在我制作的汽车游戏中模拟玩家二,并且它想要在前进的同时转动汽车。曲线是90,所以我想保持3秒钟。我该怎么做?

编辑:试过

                DateTime start = DateTime.Now;
                TimeSpan timespan = DateTime.Now.Subtract(DateTime.Now);

                if (timespan.TotalMilliseconds < duration)
                {
                    timespan = DateTime.Now.Subtract(start);

                    keybd_event(keyByte, 0, KEYEVENTF_KEYDOWN, 0);
                }

                keybd_event(keyByte, 0, KEYEVENTF_KEYUP, 0);

但没有结果

3 个答案:

答案 0 :(得分:5)

您应该将计时器设置为3秒,当它启动时,您应该释放按钮。

答案 1 :(得分:0)

您可以在每次更新时调用它,这将模拟每次更新检查输入并找到它。如果你想在手动控制和计算机控制之间提供选项,它也应该引起最小的改变。

但据我所知,除非另有说法,否则无法说“生成此输入”。

另外作为一个注释,如果你试图在轨道上移动一辆汽车(比如在游戏中),那就是数学,你通常使用它来模拟用户的控制,而不是让计算机按下按钮。 / p>

答案 2 :(得分:-3)

你有没有试过

keybd_event(keyByte,0,KEYEVENTF_KEYDOWN,0);

循环3秒钟?