.如果真 (nCode = #HC_ACTION)
.判断开始 (wParam = #WM_KEYDOWN 或 wParam = #WM_SYSKEYDOWN)
取按键信息数据 (按键信息, lParam, 28)
' 实现模拟按键代码
.如果真 (按键信息.vkCode = #Tab键 且 位与 (按键信息.flags, #LLKHF_ALTDOWN) ≠ 0)
' 屏蔽ALT+TAB
返回 (1)
.如果真结束
.如果真 (按键信息.vkCode = #Esc键 且 位与 (按键信息.flags, #LLKHF_ALTDOWN) ≠ 0)
' 屏蔽ALT+ESC
返回 (1)
.如果真结束
.如果真 (按键信息.vkCode = #F4键 且 位与 (按键信息.flags, #LLKHF_ALTDOWN) ≠ 0)
' 屏蔽ALT+F4
返回 (1)
.如果真结束
.如果真 (按键信息.vkCode = #Esc键 且 位与 (按键信息.flags, 32768) ≠ 0)
' 屏蔽CTRL+ESC
返回 (1)
.如果真结束
.如果真 (按键信息.vkCode = 91 或 按键信息.vkCode = 92 或 按键信息.vkCode = 93)
' 左右Win 和徽标键
返回 (1)
.如果真结束
.默认
.判断结束
.如果真结束
返回 (CallNextHookEx (钩子句柄, nCode, wParam, lParam))
.判断开始 (调用类型 = #DLL_PROCESS_ATTACH) ' 载入
' 创建更替SAS window回调函数的线程
.如果真 (FOldProc = 0)
线程句柄 = CreateThread (0, 0, &ThreadFunc, 0, 0, 线程Id)
.如果真结束
.判断 (调用类型 = #DLL_PROCESS_DETACH) ' 卸载
' 恢复原有SAS window的回调函数
.如果真 (FOldProc ≠ 0)
SetWindowLong (hSASWnd, #GWL_WNDPROC, FOldProc)
.如果真结束
.如果真 (钩子句柄 ≠ 0)
UnhookWindowsHookEx (钩子句柄)
上一篇 多方法update程序自动更新
下一篇 用画板简单制作电子教鞭软件