OriginalGriff
Горячие клавиши работают только тогда, когда ваше приложение имеет фокус - иначе мы вообще не могли бы их использовать - подумайте, сколько комбинаций клавиш использует Excel и сколько из них также используется (для другой цели) Word. Если горячие клавиши были распределены по всем приложениям, то какой из них получает F2, когда я нажимаю его?
То, что вы пытаетесь сделать, требует чего - то гораздо более сложного: глобальных Крючков- и здесь есть проблемы.
1) глобальное зацепление в C# возможно, но очень сложно и подвержено ошибкам. Когда происходят ошибки, вся ваша система может легко стать нестабильной. И это включает в себя то время, когда вы пытаетесь разработать код! Резервное копирование ну, резервное копирование часто.
2) Использование F5 и F7 в качестве "глобальных ключей" испортит вас, а не только пользователей. F5-это Visual Studio для "запуска", поэтому, если ваше приложение захватит его, вы больше не сможете легко разрабатывать программное обеспечение.
3) глобальное подключение - это один из способов разрешить работу кейлоггеров, поэтому не ожидайте, что он будет работать в будущих версиях Windows-проблемы безопасности могут означать, что он будет отключен или потребует повышения уровня.
4) Вы начинаете отбирать ключи у пользователей, чтобы заставить ваше приложение работать, и некоторые - если не большинство - будут очень, очень раздражены. Многие из моих приложений используют большинство функциональных клавиш (с комбинациями SHIFT, CTRL и DALT и без них) в качестве "ярлыков для опытных пользователей", и если вы начнете хватать их, ваше программное обеспечение будет удалено с крайним предубеждением ...
Если после этого вы решите идти дальше, то начните здесь: Глобальные Обработчики С#[^- только не говори, что тебя не предупреждали!