易语言通过全局键盘钩子屏蔽键盘组合按键

两种方法安装键盘钩子都是如下:

键盘钩子 = SetWindowsHookExA (13, &键盘钩子, GetModuleHandleA (0), 0)

键盘钩子回调方法一源码:

.版本 2
 
.子程序 键盘钩子, 整数型
.参数 参数一, 整数型
.参数 参数二, 整数型
.参数 参数三, 整数型
.局部变量 键值, 整数型
 
键值 = 取字节集数据 (指针到字节集 (参数三, 1), 3, )
' 返回 (1)
.如果真 (参数一 = 0)
    .判断开始 (键值 = #A键)
        返回 (1)
    .' 判断 (键值 = 91 或 键值 = #D)
        ' 返回 (1)
    .' 判断 (键值 = #Alt键 或 键值 = #F4)
        ' 返回 (1)
    .' 判断 (键值 = #Alt键 或 键值 = #Tab)
        ' 返回 (1)
    .' 判断 (键值 = #Ctrl键 或 键值 = #Esc)
        ' 返回 (1)
    .' 判断 (键值 = #Ctrl键 或 键值 = #Alt键 或 键值 = #A)
        ' 返回 (1)
    .默认
    .判断结束
.如果真结束
返回 (CallNextHookEx (键盘钩子, 参数一, 参数二, 参数三))

键盘钩子回调方法二源码:

.版本 2
.支持库 spec
 
.子程序 键盘回调, 整数型, , 键盘钩子回调函数
.参数 ncode, 整数型, , 0
.参数 wparam, 整数型, , 按键状态
.参数 lparam, 整数型, , 结构指针
.局部变量 按键信息, KBDLLHOOKSTRUCT
 
CopyMemory (按键信息, lparam, 28)
' 检测系统全局键盘的按下状态
.如果真 (ncode = 0)
    .判断开始 (wparam = 256 或 wparam = 260)
 
        .如果真 (按键信息.vkCode = #Tab键 且 位与 (按键信息.flags, 32) ≠ 0)
            调试输出 (“屏蔽了Alt + Tab”)
            返回 (1)
 
        .如果真结束
        .如果真 (按键信息.vkCode = #Esc键 且 位与 (按键信息.flags, 32) ≠ 0)
            调试输出 (“屏蔽了Alt + Esc键”)
            返回 (1)
 
        .如果真结束
        .如果真 (按键信息.vkCode = #F4键 且 位与 (按键信息.flags, 32) ≠ 0)
            调试输出 (“屏蔽了Alt + F4 键”)
            返回 (1)
 
        .如果真结束
        .如果真 (按键信息.vkCode = #Esc键 且 位与 (GetKeyState (17), 32768) ≠ 0)
            调试输出 (“屏蔽了Ctrl + Esc 键”)
            返回 (1)
        .如果真结束
        .如果真 (按键信息.vkCode = 91 或 按键信息.vkCode = 92 或 按键信息.vkCode = 93)
            调试输出 (“屏蔽了 左右 WIN  键”)
            返回 (1)
        .如果真结束
        .如果真 (按键信息.vkCode = #A键 且 位与 (GetKeyState (17), 32768) ≠ 0)
            调试输出 (“屏蔽了Ctrl + A 键”)
            返回 (1)
        .如果真结束
    .默认

键盘结构体 KBDLLHOOKSTRUCT

.版本 2
 
.数据类型 KBDLLHOOKSTRUCT
    .成员 vkCode, 整数型, , , 指定虚拟键值
    .成员 scanCode, 整数型, , , 指定键的硬件扫描码。
    .成员 flags, 整数型, , , 事件注入标志
    .成员 time, 整数型, , , 事件注入时间
    .成员 dwExtraInfo, 整数型, , , 额外的信息

卸载键盘钩子

UnhookWindowsHookEx (键盘钩子)

511遇见全部视频教程百度网盘下载

511遇见易语言DLL制作调用及hook注入

资源教程交流①群:521068947


发布日期:

所属分类: 易语言 标签: