VB.NET注册热键F12,或者屏蔽系统F12键

轻鸿万里 2016-09-01 10:40:42
如题。请各位大侠帮忙解决。
...全文
1010 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
轻鸿万里 2017-10-30
  • 打赏
  • 举报
回复
自己做全局键盘钩子解决了。
Poopaye 2016-09-02
  • 打赏
  • 举报
回复
Declare Auto Function RegisterHotKey Lib "user32.dll" (Byval handle As IntPtr, ByVal id As Integer, ByVal fsModifier As UInt32, ByVal vk As UInt32) As Boolean

'8888随便填
'123就是F12
RegisterHotKey (Me.Handle, 8888, 0, 123)

'然后在WnProc里处理786这个消息
轻鸿万里 2016-09-02
  • 打赏
  • 举报
回复
我的目的就是要屏蔽F12,换个都没问题。
Poopaye 2016-09-02
  • 打赏
  • 举报
回复
f12应该是没辙的,换个吧
引用
The F12 key is reserved for use by the debugger at all times, so it should not be registered as a hot key. Even when you are not debugging an application, F12 is reserved in case a kernel-mode debugger or a just-in-time debugger is resident.
https://msdn.microsoft.com/en-us/library/windows/desktop/ms646309(v=vs.85).aspx
轻鸿万里 2016-09-02
  • 打赏
  • 举报
回复
Public Const WM_HOTKEY As Integer = &H312 Public Const MOD_ALT As Integer = &H1 Public Const MOD_CONTROL As Integer = &H2 Public Const MOD_SHIFT As Integer = &H4 Public Const GWL_WNDPROC As Integer = (-4) 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 Dim isResult As Boolean isResult = RegisterHotKey(Handle, 0, 0, Keys.F12) '注册home的组合键 Me.Hide() If isResult = False Then MsgBox("注册热键失败") Me.Close() End If End Sub Private Sub Form1_clos(ByVal sender As System.Object, ByVal e As FormClosingEventArgs) Handles MyBase.FormClosing Dim isResult As Boolean isResult = UnRegisterHotKey(Handle, 0) End Sub '响应热键 Protected Overrides Sub WndProc(ByRef m As Message) If m.Msg = WM_HOTKEY Then End If MyBase.WndProc(m) End Sub
轻鸿万里 2016-09-02
  • 打赏
  • 举报
回复
引用 3 楼 shingoscar 的回复:
Declare Auto Function RegisterHotKey Lib "user32.dll" (Byval handle As IntPtr, ByVal id As Integer, ByVal fsModifier As UInt32, ByVal vk As UInt32) As Boolean

'8888随便填
'123就是F12
RegisterHotKey (Me.Handle, 8888, 0, 123)

'然后在WnProc里处理786这个消息
试过了,不行的。注册失败
轻鸿万里 2016-09-02
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
看不懂,不是当前窗口,vs又不会响应f12
全局热键 无论是不是当前窗口,只要键盘按下F12就会响应。
Poopaye 2016-09-01
  • 打赏
  • 举报
回复
看不懂,不是当前窗口,vs又不会响应f12
关于 School NC(一个特色功能的工具)1:什么是 School NC(校园及时通) 如果我没记错,已有个软件叫Net Call了,记得她是用于互联网的聊天软件,但朋友请注意我的Net Call是用于局域网的聊天软件,如楼群之间或企业内部。如果你想用在INTERNET中也行.每个聊天软件都有自己的特点,此软件的优点就是小巧玲珑,虽说不是功能强大,但使用方便是她最大的好处。2:怎样使用"网扩" Net Call是一个客户/服务形程序,现在你所有的是一个软件包,主动要包括: Server.exe:此程序需运行在服务器端,如运行在公司或网吧的服务器中. Client.exe:此程序需运行在客户端,如运行在公司的工作站或网吧的工作站中. User.mdb:服务器端的用户资料库. Readme.txt:现在你所看的文件. 由于本软件是用VB所编写,所以在你的机子中一定要有VB运行库(即须安装).3:功能 服务器端: 支持对用户"IP地址查看","系统重置","清除用户",用户资料管理,自动侦测用户在线状态,加上(Crtl+F12)后台服务功能 客户端: 可进行有特色的"二人画板",客户双方可实时在画板上进行图解交流,支持二人进行语音聊天(特快),但还是会有延时,同时可进行任何格式的文件传送.支持分组用户操作,支持(Ctrl+ ←) "迷你顶层滚屏模式".4:技术支持 这个版本(1.00 Bate)设计中网扩有很多功能未能来得及写出代码(如实时语音对话)和跨网传送,由于时间不是很多,所以在你使用过程中如出现了问题请通知我,我将在下一版改进后,第一个送给你,如果你是一个编程爱好者,如果你喜欢我的程序,请Email给我.电猛人

16,555

社区成员

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

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