NHotkey es una biblioteca de código abierto para .NET que nos permite añadir de forma sencilla atajos de teclado personalizados en aplicaciones de Winforms o WPF.
Estos atajos de teclado son globales, es decir, funcionan incluso aunque tu aplicación no tenga el foco o esté minimizada. Añadir teclados globales es una funcionalidad interesante para nuestras App.
Por ejemplo, puede que nuestro programa se minimice a la bandeja, y queramos que al pulsar una combinación de teclado se muestre al usuario. O que cree una nueva nota, o realice una acción, lo que nosotros queramos.
Sin embargo, en general, definir un hook para que el atajo de teclado funcione a nivel global, fuera de nuestra aplicación… pues la verdad, es un poco infierno.
NHotkey es biblioteca que hace muy sencilla esta operación, y es muy útil para agregar estas “funcionalidades especiales” a tu aplicación sin tener que morir en el intento.
Cómo usar NHotkey
Podemos añadir la biblioteca a un proyecto de .NET fácilmente, a través del paquete Nuget correspondiente.
Install-Package NHotkey.Wpf
A continuación, definir un atajo de teclado es tan sencillo como,
HotkeyManager.Current.AddOrReplace("nombre_tu_comando", Keys.Control | Keys.Alt | Keys.Add, tu_funcion_callback);
El nombre_de_tu_comando puede ser el que tu quieras y, se entiende, que tendrías definida la función ‘tu_funcion_callback’, con el nombre y código que tu quieras.
private void tu_funcion_callback(object sender, HotkeyEventArgs e)
{
// lo que tu quieras
}
Así de sencillo. Sin necesidad de llamar a el Api de Windows, sin tener que lidiar con DLLs, ni absolutamente nada. Una línea de código, y a funcionar.
NHotkey es Open Source, y todo el código y documentación está disponible en el repositorio del proyecto en https://github.com/thomaslevesque/NHotkey