Conviene usare la funzione:
GetAsynKeyState

Ad esempio in un Timer:

codice:
 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If GetAsyncKeyState(112) < 0 Then
            Me.WindowState = FormWindowState.Minimized
        End If
    End Sub