zoukankan      html  css  js  c++  java
  • DELPHI实现键盘勾子

     1 //调用键盘钩子,屏蔽功能键
     2 function keyHookProc(nCode: Integer; LWParam: WPARAM; LLParam: LPARAM): LRESULT; stdcall
     3   
     4 var
     5   hHk :HHOOK;
     6   
     7 //创建勾子
     8 hHk:= SetWindowsHookEx(13, @keyHookProc, HInstance, 0);
     9 
    10 function keyHookProc(nCode: Integer; LWParam: WPARAM; LLParam: LPARAM): LRESULT;//调用键盘钩子,屏蔽功能键
    11 var
    12   p: PKBDLLHOOKSTRUCT;
    13   y: integer;
    14 begin
    15    if nCode < 0 then
    16   begin
    17     Result:= CallNextHookEx(hHk, nCode, LWParam, LLParam);
    18     Exit;
    19   end
    20   else
    21   begin
    22     y := 0;
    23     case LWParam of
    24       WM_KEYDOWN, WM_SYSKEYDOWN, WM_KEYUP,WM_SYSKEYUP:
    25       begin
    26         p:= PKBDLLHOOKSTRUCT(LLParam);
    27         if p^.vkCode = VK_LWIN then y:= 1
    28         else if p^.vkCode = VK_RWIN then y:= 1
    29         else if (p.vkCode = VK_RETURN) and ((p.flags and (KF_ALTDOWN shr 8)) <> 0)
    30           and ((GetKeyState(VK_CONTROL) and $8000) <> 0then y:= 1
    31         else if (p.vkCode = VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) <> 0then y:= 1
    32         else if (p.vkCode = VK_ESCAPE) and ((GetKeyState(VK_MENU) and $8000) <> 0then y:= 1
    33         else if (p.vkCode = 192and ((GetKeyState(VK_CONTROL) and $8000) <> 0then y:= 1
    34         else if (p.vkCode = VK_TAB) and ((GetKeyState(VK_MENU) and $8000) <> 0then y:= 1;
    35       end;
    36     end;
    37     if y=1 then
    38     Result:=1 //如果为WIN功能键则屏蔽
    39     else
    40     Result:= CallNextHookEx(hHk, nCode, LWParam, LLParam); //其他键放下一个钩子
    41   end
    42 end;
    43 
    44 
    45 //卸载勾子
    46 UnHookWindowsHookEx(hHk);



     

  • 相关阅读:
    python上传阿里云oss
    python调用百度图片识别api
    python实现sm2和sm4国密(国家商用密码)算法
    python坐标获取经纬度或经纬度获取坐标免费模块--geopy
    剑指 Offer 36. 二叉搜索树与双向链表
    vs code中终端中的命令不能使用的解决方法
    VS Code切换默认终端(cmd、powershell)
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 33. 二叉搜索树的后序遍历序列
    剑指 Offer 32
  • 原文地址:https://www.cnblogs.com/whisht/p/2251797.html
Copyright © 2011-2022 走看看