vb.net种怎么屏蔽掉tab+alt键,tab+alt+del,win,tab+shift+ctrl这些键盘常用的快捷键

vb.net种如何屏蔽掉tab+alt键,tab+alt+del,win,tab+shift+ctrl这些键盘常用的快捷键

  最近在做一个小程序 
 
  想实现 程序加载的时候

  屏蔽掉tab+alt键,ctrl+alt+del,win,tab+shift+ctrl这些键盘常用的快捷键

  听说消息钩子可以实现 不过小弟才疏学浅 不知道怎么写?

  还请各位达人指教 我需要的是VB.net的代码形式

  最好不要粘贴那种你我一看到就头晕的长篇代码 谢谢
 
  一经测试成功 分送上 结贴

------解决方案--------------------
屏蔽alt键和ctrl,shift的代码
VB.NET code
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.Alt = True Then
                e.Handled = True
        End If
        If e.ctrl= True Then
                e.Handled = True
        End If
        If e.shift= True Then
                e.Handled = True
        End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.KeyPreview = True
    End Sub

------解决方案--------------------
屏蔽alt+F4的方法,你参照这个写吧
VB.NET code
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.Alt = True Then
            If e.KeyCode = Keys.F4 Then
                e.Handled = True
            End If
        End If
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.KeyPreview = True
    End Sub

------解决方案--------------------
通过KeyPress(),KeyDown和KeyUp事件实现屏蔽
也可引用[DllImport("user32.dll", SetLastError = true)]
public static extern bool RegisterHotKey(
IntPtr hWnd,
int id,
int fsModifiers,//alt = 1, none = 0, win = 8;
Keys virtualKey
);

[DllImport("user32.dll", SetLastError = true)]
public static extern bool UnregisterHotKey(
IntPtr hWnd,
int id
);
实现
http://blog.****.net/benqmm/archive/2005/12/18/555634.aspx
------解决方案--------------------
整个系统屏蔽也可以,把要屏蔽的添加成热键,自己写代码,如果什么都不写就相当于屏蔽掉了
把你要屏蔽的添加进来就好了
VB.NET code
Public Declare Auto Function RegisterHotKey Lib "user32.dll" Alias _
      "RegisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer, ByVal fsModifiers As Integer, ByVal vk As Integer) As Boolean

    Public Declare Auto Function UnRegisterHotKey Lib "user32.dll" Alias _
        "UnregisterHotKey" (ByVal hwnd As IntPtr, ByVal id As Integer) As Boolean
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '注册全局热键 
        RegisterHotKey(Handle, 0, 7, Keys.C)
        RegisterHotKey(Handle, 1, Nothing, Keys.L)
        ' 0=nothing 1 -alt 2-ctrl 3-ctrl+alt 4-shift 5-alt+shift 6-ctrl+shift 7-ctrl+shift+alt
    End Sub

    Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed

        UnRegisterHotKey(Handle, 0)
        UnRegisterHotKey(Handle, 1)
    End Sub
    Protected Overrides Sub WndProc(ByRef m As Message)
        If m.Msg = 786 Then
           select case m.WParam.ToInt32 
              case 0,1
              case else
                 MyBase.WndProc(m)
           end select
        end if
    End Sub

------解决方案--------------------
写丢了点
Protected Overrides Sub WndProc(ByRef m As Message)
If m.Msg = 786 Then