Si vous êtes désireux de le faire sur WinForms traditionnels, vous pouvez consulter cet article:
http://www.switchonthecode.com/tutorials/winforms-accessing-mouse-and-keyboard-state
A mi-chemin vers le bas, il y a une classe abstraite de clavier qui utilise un appel système pour obtenir des états clés. Vous pourriez vouloir essayer.
EDIT: Voici la classe convertie en VB.NET. Je ne l'ai pas testé donc il pourrait y avoir quelques erreurs. Faites le moi savoir.
Imports System
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Public MustInherit Class Keyboard
<Flags()>
Private Enum KeyStates
None = 0
Down = 1
Toggled = 2
End Enum
<DllImport("user32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)>
Private Shared Function GetKeyState(ByVal keyCode As Integer) As Short
End Function
Private Shared Function GetKeyState(ByVal key As Keys) As KeyStates
Dim state = KeyStates.None
Dim retVal = GetKeyState(CType(key, Integer))
' if the high-order bit is 1, the key is down
' otherwise, it is up
If retVal And &H8000 = &H8000 Then
state = state Or KeyStates.Down
End If
' If the low-order bit is 1, the key is toggled.
If retVal And 1 = 1 Then
state = state Or KeyStates.Toggled
End If
Return state
End Function
Public Shared Function IsKeyDown(ByVal key As Keys) As Boolean
Return KeyStates.Down = (GetKeyState(key) And KeyStates.Down)
End Function
Public Shared Function IsKeyToggled(ByVal key As Keys) As Boolean
Return KeyStates.Toggled = (GetKeyState(key) And KeyStates.Toggled)
End Function
End Class
Donc, une fois que vous ajoutez cette classe à votre projet, vous pouvez faire quelque chose comme ceci:
' See if the 1 button is being held down
If Keyboard.IsKeyDown(Keys.D1) Then
' Do the form showing stuff here
EndIf
Est-ce l'application VB.NET lancement des autres processus (par exemple iTunes)? – Jay
pas l'itunes était un exemple d'un programme qui fait ce que je veux que le mien fasse. Il ne lance aucun processus. –