Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0154: Hotkeys bzw. Shortcuts registrieren

 von 

Beschreibung 

Um auf Tastendruck eine bestimmte funktion, sprich ein Programm, ausführen zu lassen, muß die entsprechende Taste mit dem gewünschten Fenster in Verbindung gebracht werden, also registriert im Betriebssystem werden. Dabei wäre es zum Beispiel denkbar, bei Bekanntsein des Fenster-Handles auch fremden Fenstern einen Shortcut zuzuweisen. Einschränkung liegt hier in der Verwendungsmöglichkeit nur einer einzigen Taste, wer Tastenkombinationen verwenden möchte nutzt besser Tipp 411.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

SendMessageA (SendMessage)

Download:

Download des Beispielprojektes [1,87 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"


Private Declare Function SendMessage Lib "user32" _
        Alias "SendMessageA" (ByVal hwnd As Long, _
        ByVal wMsg As Long, ByVal wParam As Long, _
        lParam As Any) As Long

Const VK_F1 = &H70
Const VK_F2 = &H71
Const VK_F3 = &H72
Const VK_F4 = &H73
'etc...

Const WM_SETHOTKEY = &H32

Private Sub Command1_Click()
  Call SendMessage(Me.hwnd, WM_SETHOTKEY, VK_F4, 0&)
  Me.WindowState = 1
  MsgBox "Schließen Sie diese Mesagebox und " _
        & "betätigen Sie danach die F4-Taste!"
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 5 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Benjamin Georg Lorrig am 19.09.2003 um 11:57

Was ist, wenn ich ein Programm haben moechte, was auf eine bestimmte Taste (leertaste z.B.) eine funktion ausfuehrt, die Leertaste aber trotzdem eingegeben wird?
Hintergrund ist ein Plugin fuer Word, was bei einer Leertaste etwas ueberpruefen soll, das heisst aber nicht, dass ich den Benutzer am verwenden von Leertasten hindern moechte.
Im Prinzip ist das, was mir wirklich Probleme bereitet nur: wie rufe ich eine Funktion auf, anstatt ein Fenster in den Vordergrund zu laden...?

Kommentar von Robert R. am 07.06.2003 um 13:48

Wie mache ich, dass ein beliebiger Sound bei dem Druck einer F-Taste abgespielt wird???

Kommentar von Xtm am 07.04.2003 um 17:33

Hallo,
kann man auch eine andere "Aktion" als maximieren auf Tastendruck ausführen lassen???

Kommentar von Franz Humplmair am 07.07.2001 um 03:29

Ich beziehe mich auf die Frage von D.copy@gmx.de:
Laut MS mit dieser Funktion nein; Sie setz ein Window ein hotkey;
Es gibt eine andere API Funktion für die in deinen Fall funktionert!
Sie heist: RegisterHotKey
Achtung dum must das Fenster SubClassen;
WM_Hotkey ist die botschaft die du abfangen must;
schau mal im www.msdn.microsoft.com nach

Kommentar von Dominik Kopczynski am 25.05.2001 um 08:14

Ich wollte wissen, ob man auch mit mehreren Hotkeys das Programm schreiben kann.