怎样屏蔽 Alt+F4键
以下代码在模块------------
'http://baidu.bhdata.com
'石陆软件屋
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Public hnexthookproc As Long
Public Const HC_ACTION = 0
Public Const WH_KEYBOARD = 2
Public Function MyHotKey(vKeyCode) As Boolean
MyHotKey &#61; ((GetAsyncKeyState(vKeyCode) < 0))
End Function
Public Sub UnHookKBD()
If hnexthookproc <> 0 Then
UnhookWindowsHookEx hnexthookproc
hnexthookproc &#61; 0
End If
End Sub
Public Function EnableKBDHook()
If hnexthookproc <> 0 Then
Exit Function
End If
hnexthookproc &#61; SetWindowsHookEx(WH_KEYBOARD, AddressOf _
MyKBHFunc, App.hInstance, 0)
If hnexthookproc <> 0 Then
EnableKBDHook &#61; hnexthookproc
End If
End Function
Public Function MyKBHFunc(ByVal iCode As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
&#39;wParam 是传入按了哪个key的virtual-key code
&#39;如果直接使用下面两行代码则所有键盘的输入皆没有作用
&#39;MyKBHFunc &#61; 1 &#39;吃掉讯息
&#39;Exit Function
MyKBHFunc &#61; 0 &#39;讯息要处理
If iCode < 0 Then
MyKBHFunc &#61; CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
Exit Function
End If
If wParam &#61; 115 Then &#39;侦测 有没有按到选定的按键(这里是F4)
MyKBHFunc &#61; 0 &#39;先设定为处理信息
If MyHotKey(18) Then MyKBHFunc &#61; 1 &#39;如果当时也按了ALT就便吃掉这个讯息
If MyKBHFunc &#61; 1 Then Form1.Caption &#61; "石陆软件屋提示:你刚才的键盘输入为Alt&#43;F4,表示要将程序关闭&#xff01;"
Else
Call CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
End If
End Function
以下代码在窗体------------
Private Sub Form_Load()
Call EnableKBDHook
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnHookKBD
End Sub
VB部分相关文章推荐
※VB快速读取 TextBox 第 N 行的资料
※VB禁止使用 Alt-Tab 或 Ctrl-Alt-Del
※生成迷宫的程序
※另一方法转换大小写
※VB控件注册 - 利用资源文件将dll、ocx打包进exe文件
※VB利用资源文件进行工作
※[转]vb高效编程&#xff08;优化&#xff09;
※VB阳历转阴历
※纯VB代码取得硬盘的物理序列号
※VB获得磁盘的文件系统
※做VB的&#xff0c;经常注册和反注册OCX控件和DLL链
※VB从程序中生成Exe文件
※VB6监视/操作剪贴板示例(VB6.0代码)
※VB6里自动提交/自动填表的一种相对通用的方案
※VB移动没有标题的窗体
※VB随机字母的函数
※VB删除带子文件夹和文件的文件夹
※VB怎样屏蔽 Alt&#43;F4键
※VB 隐藏进程
※vb屏蔽文本框点右键时的弹出菜单
※VB手控Combobox的打开或收起
※在VB中INI文件的读写、删除&#xff08;对中文支持很好&#xff09;
※vb全局热键的写法&#xff08;占很少的资源&#xff09;
※vb取消文本框的粘贴功能
※VB常用文件操作类
※VB获取特殊文件夹
※VB获取windows各常用目录的函数&#xff08;模块&#xff09;
※VB生成太极图
※VB:常用内部函数大全,你会了几个呢?
※vb中SendMessage函数
※精简VB程序的代码
※VB:将数字转换为大写中文
※VB:设定 MsgBox 在若干时间之后若无回应则自动关闭
※VB:读取及设定NumLock/CapsLock/ScrollLock的值
※VB:您知道 Mid$ 函量可以放在 &#39;&#61;&#39; 的左方吗
※VB后台获得按键,并执行自己的函数(非钩子及热键)
※VB:将短文件名格式转成长文件名
※在vb中使用Iphlpapi.dll获取网络信息(上&#xff09;
※在vb中使用Iphlpapi.dll获取网络信息(下&#xff09;
更多精彩>>>