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

wenjunsu 2009-04-05 12:06:04

最近在做一个小程序

想实现 程序加载的时候

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

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

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

最好不要粘贴那种你我一看到就头晕的长篇代码 谢谢

一经测试成功 分送上 结贴
...全文
1057 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
imkzh5 2012-01-07
  • 打赏
  • 举报
回复
想要屏蔽任务管理器的热键还不简单?直接打开它!

'在需要屏蔽任务管理器时:
stream1 = File.Open("c:\windows\system32\taskmgr.exe", FileMode.Open)

'在不需要时:
stream1.close


只是如果任管已经运行,就失效了...
wenjunsu 2009-04-13
  • 打赏
  • 举报
回复

O(∩_∩)O哈哈~。。不好意思啊。。。。分平均下来有点少啊。。。

但是本着鼓励原创给分的原则 所以就这样了。。

谢谢各位了。。
Bullatus 2009-04-06
  • 打赏
  • 举报
回复
学习,但貌似一楼和二楼的方法不能屏蔽任务管理器的热键
bw555 2009-04-05
  • 打赏
  • 举报
回复
屏蔽alt+F4的方法,你参照这个写吧
    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
bw555 2009-04-05
  • 打赏
  • 举报
回复
屏蔽alt键和ctrl,shift的代码
    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
gamewater 2009-04-05
  • 打赏
  • 举报
回复
思路不错的说,楼上.
bw555 2009-04-05
  • 打赏
  • 举报
回复
写丢了点
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
else
MyBase.WndProc(m)

end if
End Sub
bw555 2009-04-05
  • 打赏
  • 举报
回复
整个系统屏蔽也可以,把要屏蔽的添加成热键,自己写代码,如果什么都不写就相当于屏蔽掉了
把你要屏蔽的添加进来就好了
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
gamewater 2009-04-05
  • 打赏
  • 举报
回复
我也在学习这个.楼上的几位用窗体事件怎么可能屏蔽掉楼主所说的快捷键呢?那只对本窗体有效.楼主和我一样是想屏蔽整个快捷键在整个系统中的操作吧.
wuyq11 2009-04-05
  • 打赏
  • 举报
回复
通过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.csdn.net/benqmm/archive/2005/12/18/555634.aspx

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧