Здравствуйте, Danchik, Вы писали:
D>А что возвращает ReadConsoleInput? Есть что то в буфере?
А, всё понятно, WaitForSingleObject не только символов ждёт, а ввода вообще, если допустим написать так:
int main()
{
FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
DWORD dw = WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), INFINITE);
return 0;
}
И не дёргать мышкой и не нажимать клавиши, то он будет ждать, а если дёрнуть мышку, то происходит немедленный возврат =(
Всё что нужно это мышку вырубить, я вот так сделал:
DWORD dwMode;
GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), &dwMode);
SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), dwMode & ~ENABLE_MOUSE_INPUT);
FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
DWORD dw = WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), INFINITE);
Всё, вопрос закрыт =)