C#: Bind горячих клавиш на вызов функции в консольном приложении

В Visual Studio создал новый проект типа Консольное приложение. Мне нужна какая-то реализация возможности назначать одну горячую клавишу или сочетание нескольких на вызов какого-либо метода.

Нужна возможность назначить, например, сочетание ctrl+shift+alt+esc на вызов метода. При этом чтобы была возможность блокировать это же сочетание во всех других местах. Например, при назначении сочетанию ctrl+shift+esc (вызов диспетчера задач) вызова какого-либо метода, должен выполняться только метод, а диспетчер задач не должен вызываться.


Практически везде все указывают на метод Console.ReadKey(), но это мне не подходит, так как мне нужно, чтобы клавиши считывались даже когда окно консоли не в фокусе. То есть это и подобные решения не подходят.

Я пробовал подключать к проекту Библиотеку классов Windows Forms, чтобы написать такой обработчик самостоятельно, но там, вроде как, для создания обработчика событий нажатия на клавиши нужно добавить этот обработчик к какому-либо объекту, а у меня есть только консоль.

Вроде бы существуют различные библиотеки с реализацией моей "хотелки", но почему-то почти нигде не оставляют примеров использования, а если они и есть, то позволяют назначить сочетание всего 1-2 клавиш.


Может быть кто-то может подсказать нужную мне библиотеку или самостоятельную реализацию?


Мне нужно подобие библиотеки keyboard на Python:

import keyboard

# функция для вызова при нажатии горячих клавиш
def function():
    print('Вызван диспетчер задач')

       # назначение / любое сочетание / указание метода / подавление в других приложениях
keyboard.add_hotkey('ctrl+shift+esc', callback=function, suppress=True)
keyboard.wait()

Ответы (0 шт):