Oft wurde schon gefragt:
- Wie Frage ich Tastatureingaben Systemweit ab
- Wie mache ich einen Hotkey etc.
Dazu habe ich hier ein einfaches kleines Tutorial:
Die ganze Sache funktioniert mit einer API.
Schritt 1:
Wir Deklarieren die API:
Schritt 2:
Wir brauchen nun noch eine Funktion, welche die GetAsyncKeyState benutzt und den Wert ausliest.
Entweder man macht eine Funktion für einen einzelnen Hotkey oder für mehrere. Diese Funktion ist
für mehrere Geignet. So kann einfach ein Aufruf erfolgen mit der Taste die abgefragt wird.
Schritt 3:
Mit Hilfe dieser Methode wird eine bestimmte Taste abgefragt. Gibt die oben geschriebene Funktion ein True
zurück, so wir der Befehl im If Block ausgeführt. Man könnte natürlich auch mehrere Hotkeys abfragen oder per ByVal übergeben lassen.
Um diese Funktion die ganze Zeit auszuführen, braucht man eine Schleife.
An diesem Beispiel verwende ich einen Do/Loop Schleife, welche in einem separaten Thread läuft.
Schritt 4:
Der Thread muss natürlich auch gestartet wird. Dies wird im Load Event gemacht.
Natürlich kann man sich das ganze auch umschreiben, sodass es für mehrere Hotkeys gilt. Doch dies soll hier ja nur ein
kleines Beispiel sein. Wer meine Methode nicht nutzen möchte, der schaut etwas weiter unten nach der Hook Methode,
welche auch weniger Ressourcen verbraucht.
Ich hoffe, dass das alles soweit verständlich erklärt ist. Falls nicht dann schreibt mir das bitte.
Ansonsten wünsche ich euch viel Spaß damit
- Wie Frage ich Tastatureingaben Systemweit ab
- Wie mache ich einen Hotkey etc.
Dazu habe ich hier ein einfaches kleines Tutorial:
Die ganze Sache funktioniert mit einer API.
Schritt 1:
Wir Deklarieren die API:
Schritt 2:
Wir brauchen nun noch eine Funktion, welche die GetAsyncKeyState benutzt und den Wert ausliest.
Entweder man macht eine Funktion für einen einzelnen Hotkey oder für mehrere. Diese Funktion ist
für mehrere Geignet. So kann einfach ein Aufruf erfolgen mit der Taste die abgefragt wird.
VB.NET-Quellcode
Schritt 3:
Mit Hilfe dieser Methode wird eine bestimmte Taste abgefragt. Gibt die oben geschriebene Funktion ein True
zurück, so wir der Befehl im If Block ausgeführt. Man könnte natürlich auch mehrere Hotkeys abfragen oder per ByVal übergeben lassen.
Um diese Funktion die ganze Zeit auszuführen, braucht man eine Schleife.
An diesem Beispiel verwende ich einen Do/Loop Schleife, welche in einem separaten Thread läuft.
VB.NET-Quellcode
- 'Hier die Deklaration des Threads
- Dim hotkeyThread As New Threading.Thread(AddressOf CheckKeyPressed)
- 'Das ist die Sub, welche prüft, ob ein Hotkey gedrückt wurde.
- Sub CheckKeyPressed()
- Do
- If GetTaste(Keys.B) = True Then
- 'Aktion die beim Drücken des Hotekeys passiert.
- MessageBox.Show("Die Taste B wurde gedrückt!")
- End If
- Loop
- End Sub
Schritt 4:
Der Thread muss natürlich auch gestartet wird. Dies wird im Load Event gemacht.
Natürlich kann man sich das ganze auch umschreiben, sodass es für mehrere Hotkeys gilt. Doch dies soll hier ja nur ein
kleines Beispiel sein. Wer meine Methode nicht nutzen möchte, der schaut etwas weiter unten nach der Hook Methode,
welche auch weniger Ressourcen verbraucht.
Ich hoffe, dass das alles soweit verständlich erklärt ist. Falls nicht dann schreibt mir das bitte.
Ansonsten wünsche ich euch viel Spaß damit
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „MB-Tech“ ()