屏蔽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/
版权所有!转载时请必须遵守以链接形式署名-非商业性使用-完整方式共享!
欢迎在常来吧留言&评论!


随机日志 综合排行
  • QQ外挂 野狼-Super斗地主刷分王
  • 免费获取Registry First Aid 7.1 Plati...
  • 如何策划您的导出链接
  • 关于屏幕录像专家得到高质量和小体积
  • 【原创】BluetoothView 1.15汉化版-监测你周围的...
  • [11-16]绿色免费软件更新[傲雪整理]
  • Google发布2008年度热门搜索关键词
  • Google Adsense:深入了解和应对收入波动
  • UPXShell V3.4.2.2010 (应用程序压缩解压缩)...
  • 【绿化】QQ农场超级盗匪V4.11 去广告 By Loading
  • 博客群发大师 1.0.6(可发送博文到多个博客的智能化系统)
  • “2007网络流传最广100条经典警句”
  • 最新QQ号码倒置方法,纯手动操作无需代码***(支持2010版)...
  • XtraTools 2008 V1.7 印心汉化绿色版
  • SwiftDog NetScream 1.3.9.2009 汉...
  • 【原创】SkypeLogView V1.11汉化绿色免费版
  • 新开张了,搬家中~~~
  • All Media Fixer Pro V9.01_绿色汉化修正...
  • ADSL弄成一开机自动连接
  • 全面保护OFFICE文档的六种有效措施
  • 优蛋 1.1.25.72 正式版 (115网盘专用客户端)
  • 【分享】IP切换工具下载  (经ZZ测试) ...
  • 小瑞网络电视1.78
  • [11-8]免费及绿色软件更新[临渊享鱼整理]
  • 制作手写字签名
  • 秋无痕 WinXPSP3 vol & oem 2in1 ...
  • 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+...
  • 一键屏蔽视频广告(屏蔽优酷土豆奇艺等网站广告) 2.1
  • 【汉化】Panorado V3.3.1.192┊是一个能够360...
  • 冰点文库下载 [无需积分就可以自由快速下载百度文库] 1.5 免...
  • 钢玻璃杯的故事
  • Ultimate Defrag(硬盘优化) 3.0.100.19...
  • 鲁大师下载 2.88 Build 11.822 绿色版
  • QQ远程聊天记录查看器4.3破解版(不用密码查看记录)natyo...
  • 把心仪的视频刻成能在电视上看的DVD之菜鸟篇
  • 修改 Windows XP 设定的秘技
  • KEmulator Lite v0.9.8电脑手机模拟器中文绿色...
  • 免费领取卡巴斯基KIS2011一年激活码
  • [RPG]诛仙传说"炼剑炉"系列第三部 [N...
  • 移动硬盘文件或目录损坏且无法读取修复工具
  • 我常去的技术论坛
  • 赠送2个印心邀请码
  • 暴强的在线工具 【逐渐增加中】
  • 用标题来提高网站流量的常用手段
  • 【推荐】破解Hotspot Shield的流量限制
  • PotPlayer V1.5 build 25231 32位绿色...

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