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的代码
最近在做一个小程序
想实现 程序加载的时候
屏蔽掉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