delphi hook alt+F4 ctrl+delete+alt win键等

摘要:
unituHook;界面使用Windows、消息、SysUtils、变量、类、控件、窗体、对话框、StdCtrls;typetagKBDLLHOUKSTRUCT=打包记录代码:DWORD;扫描代码:DWORD;标志:DWORD;时间:DWORD;dwExtraInfo:DWOR

unit uHook;


interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Controls, Forms, Dialogs,
  StdCtrls;


type
  tagKBDLLHOOKSTRUCT = packed record
    vkCode: DWORD;
    scanCode: DWORD;
    flags: DWORD;
    time: DWORD;
    dwExtraInfo: DWORD;
  end;


  KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT;


  PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;


const
  WH_KEYBOARD_LL = 13;


const
  LLKHF_ALTDOWN = $20;


function LowLevelKeyboardProc(nCode: Integer; WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall;


procedure hookstar;


procedure hookend;


var
  hhkLowLevelKybd: HHOOK;


implementation


function LowLevelKeyboardProc(nCode: Integer; WParam: WPARAM; LParam: LPARAM): LRESULT; stdcall;
var
  fEatKeystroke: BOOL;
  p: PKBDLLHOOKSTRUCT;
begin
  Result := 0;
  fEatKeystroke := FALSE;
  p := PKBDLLHOOKSTRUCT(lParam);
  if (nCode = HC_ACTION) then
  begin
    case wParam of
          WM_KEYDOWN, WM_SYSKEYDOWN, WM_KEYUP, WM_SYSKEYUP:fEatKeystroke:=
//    ((p.vkCode=VK_TAB) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or
//    ((p.vkCode=VK_ESCAPE) and ((p.flags and LLKHF_ALTDOWN) <> 0))or
//    (p.vkCode=VK_Lwin) or
//    (p.vkCode=VK_Rwin) or
//    (p.vkCode=VK_apps) or
//    ((p.vkCode=VK_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000) <> 0)) or
    ((p.vkCode=VK_F4) and ((p.flags and LLKHF_ALTDOWN) <> 0))
//    or
//    ((p.vkCode=VK_SPACE) and ((p.flags and LLKHF_ALTDOWN) <> 0)) or
//    (((p.vkCode=VK_CONTROL) and (P.vkCode = LLKHF_ALTDOWN and p.flags) and (P.vkCode=VK_Delete)))
    end;
  end;
  if fEatKeystroke = True then
    Result := 1;
  if nCode <> 0 then
    Result := CallNextHookEx(0, nCode, wParam, lParam);
end;


procedure HookStar;
begin
  if hhkLowLevelKybd = 0 then
    hhkLowLevelKybd := SetWindowsHookExW(WH_KEYBOARD_LL, LowLevelKeyboardProc, Hinstance, 0);
end;


procedure HookEnd;
begin
  if (hhkLowLevelKybd <> 0) and UnhookWindowsHookEx(hhkLowLevelKybd) then
    hhkLowLevelKybd := 0;
end;


initialization
  hookstar;


finalization
  hookend;


end.

http://blog.csdn.net/y281252548/article/details/52623199

免责声明:文章转载自《delphi hook alt+F4 ctrl+delete+alt win键等》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇tomcat支持 httpsIPTABLES详解(10):IPTABLES自定义链下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DELPHI 关于内存数据与 JSON

正在用 WebBroker 写一个小网站,感受颇多:1、如果是写一个小东西,应该先考虑下 WebBroker,因为它是分分钟即可上手的。2、如果要写一个大东西,或许也应该考虑下 WebBroker,因为相比其他它有着最高的灵活度(但这只是想像,因为我只是写了一个小东西)。3、Delphi 3 就有了 WebBroker,可惜现在才开始使用它;随着“服务器”...

Delphi APP 開發入門(二)Android/iOS設定,Hello World

Delphi APP 開發入門(二)Android/iOS設定,Hello World 分享: Share on facebookShare on twitterShare on google_plusone_share  閲讀次數:9047 發表時間:2014/05/12 tags: 行動開發 教學 App Delphi XE6 Android...

delphi ehLib 安装包下载及安装方法

1.下载安装包,这里提供一个百度云盘共享链接,D7-XE8都有:https://pan.baidu.com/s/1DTlxok4RiSmDokuabnGvQw2.添加环境变量,菜单"Tools"->"Options"->左侧"Environment Options"->"delphi Options"->"Library"->...

Delphi ini文件读写

参考:http://www.cnblogs.com/zhangzhifeng/archive/2011/12/01/2270267.html 一、ini文件的结构 ;这是关于 ini 文件的注释 [节点] 关键字=值 ... ini文件允许有多个节点,每个节点有允许有多个关键字,“=”后面是该关键字的值(类型有三种:字符串、整型数值和布尔值。其中字符串存...

Delphi 实现窗体自适应调整尺寸以适应不同屏幕分辩率的显示问题

给你一段代码,网上转的:unit uMyClassHelpers;//实现窗体自适应调整尺寸以适应不同屏幕分辩率的显示问题。//        陈小斌,2012年3月5日interfaceUses  SysUtils,Windows,Classes,Graphics, Controls,Forms,Dialogs, Math,typinfo;//  uMy...

win8(x64)下,重新安装delphi 2007时出现“Invalid Serial Number”,如何解决?

1)在添加删除程序里卸载delphi 2007 2)删除C:ProgramDataCodeGear 3)删除C:Program Files (x86)CodeGear 4)删除d:Program Files (x86)CodeGear   (我一般选择d盘安装程序) 5)删除注册表下codegear    ...