vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

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

Suche Visual-Basic Code
Re: Virtuelle Tatatur programmieren , aber wie? 
Autor: Hawker
Datum: 18.09.07 13:57

Hi quat!
Nur zur Info: Für einen LowLevel KeyboardHook brauchst du keine dll zu programmieren.
Hier ein kleiner Beispielcode für einen Hook in vb6:


Option Explicit
 
Private Const WH_KEYBOARD_LL = 13&
Private Const HC_ACTION = 0&
 
Private Type KBDLLHOOKSTRUCT
  vkCode As Long
  scanCode As Long
  flags As Long
  time As Long
  dwExtraInfo As Long
End Type
 
Private Declare Function SetWindowsHookEx Lib "user32" 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" (ByVal hHook As Long) _
As Long
Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As _
Any, pSource As Any, ByVal cb As Long)
 
Public m_hDllKbdHook As Long
 
Public Function HookKeyboard() As Long
    m_hDllKbdHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf _
      LowLevelKeyboardProc, App.hInstance, 0&)
    HookKeyboard = m_hDllKbdHook
End Function
 
Public Sub UnHookKeyboard()
    UnhookWindowsHookEx (m_hDllKbdHook)
End Sub
 
 
Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, _
  ByVal lParam As Long) As Long
    Static kbdllhs As KBDLLHOOKSTRUCT
 
    If nCode = HC_ACTION Then
        Call CopyMemory(kbdllhs, ByVal lParam, Len(kbdllhs))
            If kbdllhs.flags = 128 Then
              Form1.Label1.Caption = kbdllhs.vkCode
            End If
    End If
    LowLevelKeyboardProc = CallNextHookEx(m_hDllKbdHook, nCode, wParam, lParam)
    'LowLevelKeyboardProc = 1 'Hiermit wird der Input nicht weitergegeben
End Function
 
Public Sub Main()
        m_hDllKbdHook = HookKeyboard
        Form1.Show
End Sub
Das ganze kommt einfach in ein Modul rein. Der Hook funktioniert natürlich nur, solange die Anwendung läuft. Der Vorteil einer dll ist, dass man den Hook am Anfang einmal setzt und dann alles von alleine läuft, ohne dass das eigene Programm die Inputs verarbeiten muss, da alles von der dll übernommen wird. Noch ein Hinweis: Vergiss nie, vor beenden deiner Anwendung UnHookKeyboard() aufzurufen.
Bye,
Hawker
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Virtuelle Tatatur programmieren , aber wie?3.748quat31.08.07 13:03
Re: Virtuelle Tatatur programmieren , aber wie?1.906barzefutz2k31.08.07 23:16
LowLevel KeyboardHook2.013ScheibeNet01.09.07 20:48
Re: Virtuelle Tatatur programmieren , aber wie?1.717quat03.09.07 09:18
Re: Virtuelle Tatatur programmieren , aber wie?1.892Hawker18.09.07 13:57
Re: Virtuelle Tatatur programmieren , aber wie?1.705m4xtr3me30.11.07 23:41

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-2025 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