Захват событий колесика мыши в консольном приложении

Есть ли способ захватывать события колесика мыши в консольном приложении с помощью С#, как если бы вы захватывали события колесика мыши в приложениях GUI/Window?

Я хотел бы сделать это, чтобы прокручивать только часть текста в консоли.

Я искал это в Google, но все, что я могу найти, это события колесика мыши в приложениях Windows.


person Gabi Barrientos    schedule 06.04.2013    source источник
comment
Вы должны вызвать ReadConsoleInput.   -  person Hans Passant    schedule 07.04.2013


Ответы (2)


Вы можете сделать это с «двумя» частями:

  1. Создайте глобальную системную привязку к событию колесика мыши (хороший пример здесь)

  2. Во-вторых, используя PInvoke, проверьте, активна ли ваша консоль (здесь вы можете найти пример: Определить, активировано ли текущее приложение (есть ли фокус))

  3. Вы можете расширить функцию в 2, чтобы получить окно RECT отметьте здесь и пересечь положение мыши с положением окна

person Piotr Stapp    schedule 06.04.2013
comment
Спасибо, я постараюсь заставить это работать. Однако, возможно, я должен был предоставить эту информацию в своем посте, но я использую моно для разработки на Ubuntu. Учитывая тот факт, что ubuntu не содержит всех файлов dll, необходимых для этого, будет ли это работать в системах Linux или есть другой способ сделать это в системах Linux? - person Gabi Barrientos; 07.04.2013

Вызовите функцию ReadConsoleInput. Вы получите событие MOUSE_WHEELED при вращении колеса на вашей консоли.

person Raymond Chen    schedule 06.04.2013