vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
Tastatureingaben ermitteln 
Autor: Argon
Datum: 24.03.05 22:39

Hallo zusammen!

Gibt es eine API-Funktion, mit deren Hilfe sich (alle) Tastatureingaben ermitteln lassen, auch wenn das Programm, welches sie dann sozusagen überprüft, nur im Hintergrund läuft (also so eine Art globales KeyDown- (bzw. KeyPress-) Ereignis) ?

Auch Lösungen ohne API sind herzlich willkommen!

mfg Argon
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: ModeratorMartoeng (Moderator)
Datum: 24.03.05 23:03

Naja, da wirst Du schon API brauchen

GetKeyboardState fragt alle Tasten ab.

GetAsyncKeyState - damit könntest Du einzelne Tasten recht gut abfragen - und auch asynchron.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: Argon
Datum: 25.03.05 22:06

Hey Martoeng - herzlichen Dank!

Genau solche Funktionen suchte ich, doch finde ich für die erste (GetKeyboardState) nicht heraus, wie ich diese anwenden muss... Was muss man da übergeben (Konstanten?!) und was gibt die zurück?

mfg Argon
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: ModeratorMartoeng (Moderator)
Datum: 26.03.05 00:12

Übergibst ein Array mit den verschiedenen Werten.
Hier ist das in einem Tipp mit drin:
http://www.vbarchiv.net/archiv/tipp_1207.html


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: Argon
Datum: 28.03.05 21:27

In den Tipps zu suchen war mir gar nicht in den Sinn gekommen... Danke!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: ModeratorMartoeng (Moderator)
Datum: 29.03.05 01:22

Ja, das einfache bleibt oft verborgen
API ist ja nicht wirklich VB, da darf man das gerne mal übersehen


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: Martin Walcher
Datum: 29.03.05 20:18

hi argon,

eleganter lässt sich das ganze mit der api SetWindowsHookEx lösen. dort muss nur der parameter idHook = WH_KEYBOARD_LL übergeben werden.
neben der geschwindigkeit hat diese methode den vorteil dass tastatureingaben manipuliert oder bestimmte tasten deaktiviert werden können.

im msdn is des alles ganz gut beschrieben

mfg
martin
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: Argon
Datum: 30.03.05 21:12

Hi Martin Walcher

Erst mal vielen Dank für deinen Hinweis! Doch leider bin ich in API-Funktionen nicht sehr bewandert und verstehe nicht, was auf dem Link von "SetWindowHookEx" mit den "hook procedures" gemeint ist...

Zu der MSDN: Ich habe keine Vollversion vom VB-Studio und ich habe die MSDN nirgends gefunden... Kann man die irgendwo downloaden (auf Deutsch oder Englisch?) oder muss man die kaufen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: ModeratorMartoeng (Moderator)
Datum: 30.03.05 21:55

msdn.microsoft.com
Ein Windows-Hook muss ja auch nicht sein. Denke meine erste Version wird wohl ausreichen.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: Argon
Datum: 30.03.05 22:39

Hallo Martoeng

MSDN: Danke für den Link! (hätte auch selber drauf kommen können, wenn ich's mir so überlege, doch im Nachhinein ist man immer schlauer.) Auf Englisch hab' ich was gefunden, jedoch nichts auf Deutsch...

Hook: Kann ich nicht mitreden...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: ModeratorMartoeng (Moderator)
Datum: 30.03.05 23:08

joa, api-doku ist komplett auf englisch. aber falls du da nicht weiterkommst, sag mir dein problem und dann schauen wir mal.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: Argon
Datum: 30.03.05 23:24

Mach' ich! Und besten Dank für deine Hilfsbereitschaft!
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: Martin Walcher
Datum: 31.03.05 08:56

hi argon,

ich weiß nicht ob du's noch brauchst, aber hier trotzdem ein sample (muss alles in ein modul):

Private Declare Function SetWindowsHookEx Lib "user32.dll" Alias _
  "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As _
  Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32.dll" (ByVal hHook As _
Long) As Long
Private Const WH_KEYBOARD_LL As Long = 13
Public Type KBDLLHOOKSTRUCT
 vkCode As Long
 scanCode As Long
 flags As Long
 time As Long
 dwExtraInfo As Long
End Type
Dim hhk As Long
 
Public Function SetKeybHook() As Long
  hhk = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KeybHook, App.hInstance, 0)
End Function
 
Public Function DelKeybHook() As Long
  If hhk = 0 Then Exit Function
  UnhookWindowsHookEx hhk
  hhk = 0
End Function
 
Private Function KeybHook(ByVal nCode As Long, ByVal wParam As Long, kbd As _
  KBDLLHOOKSTRUCT) As Long
  'wParam kann WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, oder WM_SYSKEYUP enthalten
  'kbd.vkCode ist der Code der gedrückten Taste
 
  'Wenn KeybHook auf -1 gesetzt wird, wird die aktuelle Tasteneingabe verworfen
End Function
und jetzt schon wieder n msdn link, aber ich hatte keinen bock das abzuschreiben
kbd

aufgerufen wird das ganze mit SetKeybHook aufgerufen und mit DelKeyProc wieder gelöscht.

mfg
Martin
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Tastatureingaben ermitteln 
Autor: Argon
Datum: 31.03.05 20:38

Hi Martin!

Nach längerem Studieren deines Codes glaub ich nun endlich, ihn begriffen zu haben... und er funktionniert einwandfrei! Danke!

PS: Links reichen schon, du brauchst nicht alles abzuschreiben - ich frage schon, wenn etwas unklar sein sollte!

mfg Argon
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel