我正在执行一个CLR控制台应用程序来控制机器人。我正在使用cki.Key == ConsoleKey::UpArrow
来检查按钮是否被按下,然后发送消息给机器人。当没有按键被按下时,我想停止机器人。我怎样才能知道是否没有按键?检查是否没有按键被按下
我试图Console::KeyAvailable == false
,但后来我需要按另一个按钮来停止机器人。
我已经试过低于:
随着Console::KeyAvailable
:与_kbhit()
ConsoleKeyInfo cki;
do{
cki = Console::ReadKey(true);
if (cki.Key == ConsoleKey::UpArrow)
{ /* send message forward*/ }
else if (Console::KeyAvailable == false)
{ /* send message STOP*/ }
}while (cki.Key != ConsoleKey::Escape);
更新代码(仍然没有工作):
ConsoleKeyInfo cki;
do{
cki = Console::ReadKey(true);
if (cki.Key == ConsoleKey::UpArrow)
{ /* send message forward*/ }
else if (_kbhit() == false)
{ /* send message STOP */ }
while (_kbhit())
getch();
}while (cki.Key != ConsoleKey::Escape);
新思路:
while (true)
{
if (Console::KeyAvailable==1)
{
cki = Console::ReadKey(true);
if (cki.Key == ConsoleKey::UpArrow)
{
Console::WriteLine("Forward");
}
if (cki.Key == ConsoleKey::Escape)
{
Console::WriteLine("Escape");
break:
}
}
else
{
Console::WriteLine("STOP");
}
}
是否有keyUp事件可用? –