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()