2013-04-06 3 views
3

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

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

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

+1

Вы должны pinvoke [ReadConsoleInput] (http://www.pinvoke.net/default.aspx/kernel32/ReadConsoleInput.html) –

ответ

3

Вы можете сделать это с помощью «двух» частей:

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

  2. Во-вторых, используя проверку PInvoke, если ваша консоль активна (вы можете найти пример здесь: Determine if current application is activated (has focus))

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

+0

Спасибо, я попытаюсь заставить это работать. Однако, возможно, я должен был предоставить эту информацию в своем сообщении, но я использую mono для разработки на ubuntu. Учитывая тот факт, что ubuntu не содержит все файлы dll, необходимые для этого, будет ли это работать на Linux-системах или есть ли другой способ сделать это в Linux-системах? –

6

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

Смежные вопросы