屏蔽ALT+TAB键

| |
2009年1月27日
屏蔽ALT+TAB键
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
{按键消息的结构,Delphi中也没有,自己定义吧。这也就是我为什么说用C写
这样的程序更好的原因之一。还必须注意的是这个结构在Windows NT 4 sp3以上系统中才能使用}
tagKBDLLHOOKSTRUCT = packed record
  vkCode: DWORD;//虚拟键值
  scanCode: DWORD;//扫描码值(没有用过,我也不懂^_^)
  {一些扩展标志,这个值比较麻烦,MSDN上说得也不太明白,但是
  根据这个程序,这个标志值的第六位数(二进制)为1时,Alt键按下为0}
  flags: DWORD;
  time: DWORD;//消息时间戳
  dwExtraInfo: DWORD;//和消息相关的扩展信息
end;
  KBDLLHOOKSTRUCT = tagKBDLLHOOKSTRUCT;
  PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
//这个是低级键盘钩子的索引值,Delphi中没有,必须自己定义
const WH_KEYBOARD_LL = 13;
//定义一个常量好和上面那个结构中的flags比较而得出Alt键是否按下
const LLKHF_ALTDOWN = $20;
var
  Form1: TForm1;
  hhkLowLevelKybd: HHOOK;
implementation
{
功能:低级键盘钩子的回调函数,在里面过滤消息
参数: nCode   是Hook的标志
     WParam  表示消息的类型
     LParam  是一个指向我们在上面定义的那个结构KBDLLHOOKSTRUCT的指针
返回值:如果不是0的话,Windows就把这个消息丢掉,程序就不会再收到这个消息了。
}
function LowLevelKeyboardProc(nCode: Integer;
  WParam: WPARAM;LParam: LPARAM):LRESULT; stdcall;
var
  fEatKeystroke: BOOL;
  p: PKBDLLHOOKSTRUCT;
begin
  Result := 0;
  fEatKeystroke := FALSE;
  p := PKBDLLHOOKSTRUCT (lParam);
  //nCode值为HC_ACTION时表示WParam和LParam参数包含了按键消息
  if (nCode = HC_ACTION) then
  begin
  //拦截按键消息并测试是否是Ctrl+Esc、Alt+Tab和Alt+Esc功能键
    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_ESCAPE) and ((GetKeyState(VK_CONTROL) and $8000)  0));
    end;
  end;
  if fEatKeystroke = True then
    Result := 1;
  if nCode  0 then
     Result := CallNextHookEx(0, nCode, wParam, lParam);
end;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
  //设置低级键盘钩子
  hhkLowLevelKybd := SetWindowsHookExW(WH_KEYBOARD_LL,
    LowLevelKeyboardProc, Hinstance, 0);
  if hhkLowLevelKybd  0 then
    MessageBox(0, '低级键盘钩子设置成功!', '提示', MB_OK);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  //卸载低级键盘钩子
  if hhkLowLevelKybd  0 then
  begin
    UnhookWindowsHookEx(hhkLowLevelKybd);
    MessageBox(0, '低级键盘钩子卸载成功!', '提示', MB_OK);
  end;
end;
end.    

作者:admin@常来吧
地址:http://www.chl8.com/post/785/
版权所有!转载时请必须遵守以链接形式署名-非商业性使用-完整方式共享!
欢迎在常来吧留言&评论!


随机日志 综合排行
  • 20080805一键GHOST 备份与恢复
  • delphi 对网页自动操作
  • MSDN SQL Server 2000 简体中文企业版
  • 快手 (AAuto Studio)V0.57.9 绿色版
  • Ultra Apple TV Video Converter 4...
  • SDFix2G_Release v1.0.4 |SD存...
  • [02-02]绿色免费软件更新[傲雪整理]
  • 【原创】SwiftDog RamSmash V1.7.7.200...
  • 【原创】SoftPerfect NetWorx 4.72汉化绿色...
  • Firefox快捷键/热键精选
  • FastStone Capture V6.3 Beta2┊图像浏...
  • 【汉化】PanoradoV3.3.1.205 kalahan汉化...
  • Fastcopy V2.01汉化绿色免费版
  • PDF阅读器Sumatra PDF V1.1 绿色中文版
  • 【汉化】SwiftDog NetScreamV1.7.7.200...
  • 【汉化】iColorPickerV6.19汉化特别版
  • 蓝牙听歌软件BTAudio[565WM6测试通过]
  • SQLServer2000安装教程(图文版)
  • [07-06]最新绿色免费软件更新[傲雪整理]
  • [05.19]绿色精品软件更新[西布伦整理]
  • 格式工厂 V2.30 去广告绿色免费版
  • 心情烦闷,出去透透气
  • GhostXP_SP3电脑公司特别版_v9.8(电脑疯子作品)
  • 一流QQ泡泡龙瞄准器 0.35特别版
  • 一卡多号软件 V1.0 GSM手机卡破解工具,集成驱动,直接安装...
  • 《GhostXP_SP3电脑城DIY纯净版Ver.0811》光盘...
  • SDFix2G_Release v1.0.4 |SD存...
  • 印章制作大师11.0破解版[已修正错误]08-08-11更新
  • 蓝牙软件IVT BlueSoleil 6.2.227.11 + ...
  • Panorado V3.3.1.190┊是一个能够360度全方位...
  • 【汉化】All Media Fixer Pro 9.03 汉化修...
  • 【原创】Hotspot Shield 1.20汉化版-自动搜索V...
  • 【推荐】自动搜索VPN代理最新版-Hotspot Shield+...
  • 【汉化】Panorado V3.3.1.192┊是一个能够360...
  • 一键屏蔽视频广告(屏蔽优酷土豆奇艺等网站广告) 2.1
  • 冰点文库下载 [无需积分就可以自由快速下载百度文库] 1.5 免...
  • 钢玻璃杯的故事
  • Ultimate Defrag(硬盘优化) 3.0.100.19...
  • QQ远程聊天记录查看器4.3破解版(不用密码查看记录)natyo...
  • 鲁大师下载 2.88 Build 11.822 绿色版
  • 把心仪的视频刻成能在电视上看的DVD之菜鸟篇
  • 修改 Windows XP 设定的秘技
  • KEmulator Lite v0.9.8电脑手机模拟器中文绿色...
  • 免费领取卡巴斯基KIS2011一年激活码
  • [RPG]诛仙传说"炼剑炉"系列第三部 [N...
  • 我常去的技术论坛
  • 移动硬盘文件或目录损坏且无法读取修复工具
  • 赠送2个印心邀请码
  • 暴强的在线工具 【逐渐增加中】
  • 用标题来提高网站流量的常用手段
  • 【推荐】破解Hotspot Shield的流量限制
  • PotPlayer V1.5 build 25231 32位绿色...

  • 文章来自: 本站原创
    Tags: , , , ,
    发表评论
    昵称 [注册]
    密码 游客无需密码
    网址
    电邮
    打开HTML 打开UBB 打开表情 隐藏 记住我