Использовать ключ Механизм крюка.
Пример В VB Here И Here
Пример C# Here и Low-level Windows API hooks from C# to stop unwanted keystrokes
Если вы не знакомы с C# вы можете использовать code converter для, чтобы получить исходный код формы VB, чтобы понять код. но некоторое время не 100% конвертировать.
Полный код
Чтобы использовать этот код: Вставьте CheckBox и TextBox, чтобы Win Form
Public Class Form1
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Integer, ByVal lpfn As LowLevelKeyboardProcDelegate, ByVal hMod As IntPtr, ByVal dwThreadId As Integer) As IntPtr
Declare Function UnhookWindowsHookEx Lib "user32" Alias "UnhookWindowsHookEx" (ByVal hHook As IntPtr) As Boolean
Declare Function CallNextHookEx Lib "user32" Alias "CallNextHookEx" (ByVal hHook As IntPtr, ByVal nCode As Integer, ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer
Delegate Function LowLevelKeyboardProcDelegate(ByVal nCode As Integer, ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer
Const WH_KEYBOARD_LL As Integer = 13
Structure KBDLLHOOKSTRUCT
Dim vkCode As Integer
Dim scanCode As Integer
Dim flags As Integer
Dim time As Integer
Dim dwExtraInfo As Integer
End Structure
Dim intLLKey As IntPtr
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
intLLKey = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, IntPtr.Zero, 0)
Else
UnhookWindowsHookEx(intLLKey)
End If
End Sub
Private Function LowLevelKeyboardProc(ByVal nCode As Integer, ByVal wParam As Integer, ByRef lParam As KBDLLHOOKSTRUCT) As Integer
Dim blnEat As Boolean = False
Select Case wParam
Case 256, 257, 260, 261
'Alt+Tab, Alt+Esc, Ctrl+Esc, Windows Key
blnEat = ((lParam.vkCode = 9) AndAlso (lParam.flags = 32)) Or _
((lParam.vkCode = 27) AndAlso (lParam.flags = 32)) Or _
((lParam.vkCode = 27) AndAlso (lParam.flags = 0)) Or _
((lParam.vkCode = 91) AndAlso (lParam.flags = 1)) Or _
((lParam.vkCode = 92) AndAlso (lParam.flags = 1)) Or _
((lParam.vkCode = 32) AndAlso (lParam.flags = 0)) 'this is the space key code 32
End Select
If blnEat = True Then
Return 1
Else
Return CallNextHookEx(IntPtr.Zero, nCode, wParam, lParam)
End If
End Function
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
UnhookWindowsHookEx(intLLKey)
End Sub
End Class
Использование KeyHook https://gist.github.com/Stasonix/3181083 – Elshan
Извините, но я новичок в VB, и этот материал чрезвычайно продвинутый, могли бы вы явно указать мне, что мне нужно будет вводить и где? –