Re[4]: WaitForSingleObject на консоли
От: Sheph http://www.focusmedia.ru
Дата: 07.08.06 15:00
Оценка:
Здравствуйте, 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);


Всё, вопрос закрыт =)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.