Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0155: Tastaturereignisse simulieren

 von 

Beschreibung 

Es gibt in VB zwar den 'Sendkey-Befehl' nur wird es damit z.B. nicht gelingen, einen unter einer Funktionstaste abgelegten Hotkey zu starten. Was allerdings hier ebenfalls gewollt nicht möglich ist, ist das Abwickeln der Tastenkombination [Strg] + [Alt] + [Entf]

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keybd_event

Download:

Download des Beispielprojektes [1,76 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"

Option Explicit

Private Declare Sub keybd_event Lib "user32" (ByVal _
        bVk As Byte, ByVal bScan As Byte, ByVal dwFlags _
        As Long, ByVal dwExtraInfo As Long)

Const VK_LWIN = &H5B
Const VK_APPS = &H5D

Const KEYEVENTF_KEYUP = &H2

Private Sub Command1_Click()
  keybd_event VK_LWIN, 0, 0, 0
  keybd_event VK_LWIN, 0, KEYEVENTF_KEYUP, 0
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 16 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 Nighty am 05.10.2006 um 18:02

Jo toller Tipp uns fehlt allen nur eins.

Wie zur Hölle sendet man Tasten an ein
DirectX Game.

SendMessage PostMessage keybd_event
Das alles geht nicht.

Tippsss?

Kommentar von r4ven am 24.12.2005 um 08:24

Hi der tipp ist echt klasse,
aber vielleicht könnt mir einer von euch noch verraten wie
ich es schaff, dass er mir mit sendkeys ein wort auch in andere programme übermittelt.

also konkret mein ich damit dass wenn ich die taste in meinem kleinen prog drück danach auch ein wort (z.B.)
im editor erscheint(wär nämlich für manche spiele interessant)

(ps: die always on top funktion krieg ich auch nicht ganz hin, bin für alle tipps dankbar!)

Kommentar von Stefan am 31.08.2005 um 13:27

das geht doch viel einfacher oder?

sendkeys "F" für ein großes F z.B.
für Strg+F: Sendkeys"^f" (Vorsicht bei "Suchen": kleines f verwenden!!!)

näheres in der vb-hilfe zu sendkeys

Kommentar von Stefan Hegemann am 30.10.2004 um 20:54

Guten Tag,

Ich möchte gerne mit der Tastenkombination Win+F das Suchen Dialogfeld öffnen. Ich versuche es wie folgt, doch leider funktioniert es nicht:


Private Const KEYEVENTF_KEYUP = &H2
Const VK_WIN = 91
Const VK_F = 102

Private Sub Command1_Click()

'Tasten drücken
keybd_event VK_WIN, 0, 0, 0
keybd_event VK_F, 0, 0, 0
'Tasten loslassen
keybd_event VK_WIN, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_F, 0, KEYEVENTF_KEYUP, 0

End Sub

Kommentar von Ricoh am 22.07.2004 um 16:51

Tastenkombination (gaaanz einfach):
Einfach mehrere keybd_event schicken.

Beispiel: (Für Strg + V)

VK_STRG = 17
VK_V = 86

'Tasten drücken
keybd_event VK_STRG, 0, 0, 0
keybd_event VK_V, 0, 0, 0
'Tasten loslassen
keybd_event VK_V, 0, KEYEVENTF_KEYUP, 0
keybd_event VK_STRG, 0, KEYEVENTF_KEYUP, 0

Kommentar von GioAngelo am 13.07.2004 um 12:35

Ein paar Codes:
VK_CLEAR = &HC
VK_RETURN = &HD
VK_SHIFT = &H10
VK_CONTROL = &H11
VK_MENU = &H12
VK_PAUSE = &H13
VK_CAPITAL = &H14
VK_ESCAPE = &H1B
VK_PRIOR = &H21
VK_NEXT = &H22
VK_HOME = &H24
VK_BAK = &H8
VK_TAB = &H9
VK_LEFT = &H25
VK_UP = &H26
VK_RIGHT = &H27
VK_DOWN = &H28
VK_SELECT = &H29
VK_END = &H23
VK_SNAPSHOT = &H2C
VK_INSERT = &H2D
VK_DELETE = &H2E
VK_HELP = &H2F
VK_F1 = &H70
VK_F2 = &H71
VK_F3 = &H72
VK_F4 = &H73
VK_F5 = &H74
VK_F6 = &H75
VK_F7 = &H76
VK_F8 = &H77
VK_F9 = &H78
VK_F10 = &H79
VK_F11 = &H7A
VK_F12 = &H7B
VK_F13 = &H7C
VK_F14 = &H7D
VK_F15 = &H7E
VK_F16 = &H7F
VK_NUMLOCK = &H90
VK_SCROLL = &H91
VK_WIN = &H5B
VK_APPS = &H5D

Kommentar von Nation am 24.02.2004 um 14:10

Und wie schaffe ich zwei Tasten gleichzeitig zu drücken.
Wie strg + v zum Einfügen?
THX Nation

Kommentar von Supertiger am 23.08.2003 um 17:26

Ich kann mich Sven nur anschließen,
geniale Seite.

Big THX

Dirk

Kommentar von Stefan Blum am 26.06.2003 um 10:17

Hallo,
wie komm ich an die Tastaturcodes der Funktionstasten F1 bis F12 für den Tipp:
http://www.activevb.de/tipps/vb6tipps/tipp0155.html

Gruß
Stefan

Kommentar von Michael am 05.01.2003 um 21:36

Wer noch die Tasten such soll hier mal schauen: http://home.t-online.de/home/nreiners/vb/tasten.htm

Kommentar von Jasmin Derndorfer am 25.03.2002 um 20:14

W§ie funktioniert und was bedeuten manche Tasten. ich würde mich sehr freuen wenn ihr mir eine Bildbeschreibung schicken könnt
ps.: Pease, not wor

Kommentar von Besos am 04.06.2001 um 10:37

Die Codes dazu gibts auch im VB Objektkatalog unter KeyCodeConstants. Wer wie ich zu lange nach dem ALT-Code sucht, er ist als "vbKeyMenu" = 18 zu finden.

Kommentar von Jan Vornberger am 20.05.2001 um 16:41

Mein Keylogger funktioniert dank dieser Seite bereits (tolle Seite!), aber mit diesem Tipp habe ich ein paar Probleme. In einem normalen Editor, zum Beispiel, funktioniert es ohne Probleme. Ich möchte jedoch Tastendrücke an ein Spiel schicken, dass auf DirectX basiert (Nox). Ist das auch irgendwie möglich?
--Jan Vornberger

Kommentar von Johannes am 02.03.2001 um 15:02

Hallo ihr da unter folgender Adresse sind die felenden Cods http://www.vb-fundgrube.de/index.html

Kommentar von Stonie am 10.02.2001 um 23:14

da muss ich Sven Recht geben, gerade ein paar Tastencodes währen hier seehr hilfreich... wozu ist eigentlich diese VK_APPS, denn da pasiert bei mir gar nix...

Kommentar von Sven am 24.11.2000 um 20:13

Eure Site ist echt erste Sahne!!!
Nur bei diesem Tipp fehlen noch die Cpode für die einzelnnen Tasten.