OK, this is how to make a low level keyboard hook in VB.NET (A keyboard hook, not a keylogger Although it can be used for the latter.)
So make a form with a text box, then view the code.
Put this into your "Public Class Form1"
Now under that we create the hook.
Then we handle the events.
Then Finish the code.
Download: http://www.multiupload.com/9OXH9J3G3U
***Originality written by Vorfin(Me) For LeetCoders***
So make a form with a text box, then view the code.
Put this into your "Public Class Form1"
Code:
Public Class KeyboardHook
Private Const HC_ACTION As Integer = 0
Private Const WH_KEYBOARD_LL As Integer = 13
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
Private Const WM_SYSKEYDOWN = &H104
Private Const WM_SYSKEYUP = &H105
Private Structure KBDLLHOOKSTRUCT
Public vkCode As Integer
Public scancode As Integer
Public flags As Integer
Public time As Integer
Public dwExtraInfo As Integer
End Structure
Private Declare Function SetWindowsHookEx Lib "user32" _
Alias "SetWindowsHookExA" _
(ByVal idHook As Integer, _
ByVal lpfn As KeyboardProcDelegate, _
ByVal hmod As Integer, _
ByVal dwThreadId As Integer) As Integer
Private Declare Function CallNextHookEx Lib "user32" _
(ByVal hHook As Integer, _
ByVal nCode As Integer, _
ByVal wParam As Integer, _
ByVal lParam As KBDLLHOOKSTRUCT) As Integer
Private Declare Function UnhookWindowsHookEx Lib "user32" _
(ByVal hHook As Integer) As Integer
Private Delegate Function KeyboardProcDelegate _
(ByVal nCode As Integer, _
ByVal wParam As Integer, _
ByRef lParam As KBDLLHOOKSTRUCT) As Integer
Public Shared Event KeyDown(ByVal Key As Keys)
Public Shared Event KeyUp(ByVal Key As Keys)
Private Shared KeyHook As Integer
Private Shared KeyHookDelegate As KeyboardProcDelegate
Public Sub New() ' Installs The Hook
KeyHookDelegate = New KeyboardProcDelegate(AddressOf KeyboardProc)
KeyHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyHookDelegate, System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly.GetModules()(0)).ToInt32, 0)
End Sub
Private Shared Function KeyboardProc(ByVal nCode As Integer, ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer
If (nCode = HC_ACTION) Then
Select Case wParam
Case WM_KEYDOWN, WM_SYSKEYDOWN
RaiseEvent KeyDown(CType(lParam.vkCode, Keys))
Case WM_KEYUP, WM_SYSKEYUP
RaiseEvent KeyUp(CType(lParam.vkCode, Keys))
End Select
End If
Return CallNextHookEx(KeyHook, nCode, wParam, lParam)
End Function
Protected Overrides Sub Finalize()
UnhookWindowsHookEx(KeyHook) 'Un-Hooks When Program Closes
MyBase.Finalize()
End Sub
End Class
Now under that we create the hook.
Code:
Private WithEvents kbHook As New KeyboardHook
Then we handle the events.
Code:
Private Sub kbHook_KeyDown(ByVal Key As System.Windows.Forms.Keys) Handles kbHook.KeyDown
If Key = Keys.A Then
TextBox1.Text = TextBox1.Text & "a"
Then Finish the code.
Code:
End Sub
End Class
Download: http://www.multiupload.com/9OXH9J3G3U
***Originality written by Vorfin(Me) For LeetCoders***