Escuchar la pulsación de tecla cuando el progtwig está en segundo plano

Actualmente estoy trabajando con un progtwig que se supone que se ejecuta en segundo plano, pero también compruebo si se presiona “mod + o” y luego hago algo. Pero no puedo entender cómo un progtwig vb.net puede escuchar presionar teclas cuando el progtwig no está seleccionado / abierto .

Puede usar P / Invocation para poder usar la función GetAsyncKeyState () de WinAPI , luego verifique eso en un temporizador.

 _ Public Shared Function GetAsyncKeyState(ByVal vKey As System.Windows.Forms.Keys) As Short End Function Const KeyDownBit As Integer = &H8000 Private Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick If (GetAsyncKeyState(Keys.LWin) And KeyDownBit) = KeyDownBit AndAlso (GetAsyncKeyState(Keys.O) And KeyDownBit) = KeyDownBit Then 'Do whatever you want when 'Mod + O' is held down. End If End Sub 

EDITAR:

Para hacer que el código solo se ejecute una vez por pulsación de tecla, puede agregar un pequeño While -loop para ejecutar hasta que cualquiera de los botones se suelte (agréguelo dentro de su If state):

 While GetAsyncKeyState(Keys.LWin) AndAlso GetAsyncKeyState(Keys.O) End While 

Esto evitará que su código se ejecute más de una vez mientras mantiene presionadas las teclas.

Al utilizar esto en una aplicación de consola simplemente reemplace cada System.Windows.Forms.Keys y Keys con ConsoleKey , y reemplace LWin con LeftWindows .