我正在執行一個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事件可用? –