我试过
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);
但没有结果
答案 0 :(得分:5)
您应该将计时器设置为3秒,当它启动时,您应该释放按钮。
答案 1 :(得分:0)
您可以在每次更新时调用它,这将模拟每次更新检查输入并找到它。如果你想在手动控制和计算机控制之间提供选项,它也应该引起最小的改变。
但据我所知,除非另有说法,否则无法说“生成此输入”。
另外作为一个注释,如果你试图在轨道上移动一辆汽车(比如在游戏中),那就是数学,你通常使用它来模拟用户的控制,而不是让计算机按下按钮。 / p>
答案 2 :(得分:-3)
你有没有试过
keybd_event(keyByte,0,KEYEVENTF_KEYDOWN,0);
循环3秒钟?