如何屏蔽 除了a键和鼠标右键 其他所有键呢,如何屏蔽个别按键,谢谢

gamaster 2002-11-12 06:37:28
up
...全文
41 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qrlvls 2002-11-13
  • 打赏
  • 举报
回复
设置Hook
blueshu 2002-11-13
  • 打赏
  • 举报
回复
keydown事件中加入
blueshu 2002-11-13
  • 打赏
  • 举报
回复
if not (key= #..) then key := #0;
zhangchao_7622 2002-11-13
  • 打赏
  • 举报
回复
可以试一试楼上的。
火鸟李国平 2002-11-12
  • 打赏
  • 举报
回复
给你一个KeyBoard hook的Delphi例子:
//keyhook
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
Function KeyHook(iCode: Integer; wParam: Longint; var Msg: TMsg): Longint; stdcall;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

Function KeyHook(iCode: Integer; wParam: Longint; var Msg: TMsg): Longint; stdcall;
begin
messagebox(0,pchar(inttostr(icode)),pchar(inttostr(wParam)),mb_ok);
Keyhook:=1;//为1时应收窗口将收不到键盘消息
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
tag:=SetWindowsHookEx(WH_KEYBOARD, @Keyhook, hInstance, 0);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnhookWindowsHookEx(tag);
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0);
end;

end.
火鸟李国平 2002-11-12
  • 打赏
  • 举报
回复
具体到API就是SetWindowsHookEx和UnhookWindowsHookEx
火鸟李国平 2002-11-12
  • 打赏
  • 举报
回复
Mouse Hook 或keyboard Hook
如果您在游戏对战中,突然某一按失灵,怎么办?匆忙结束游戏?马上跑去买新盘?NO!有简单快捷的办法。 有 KeyboardShield 帮助您轻松改,用另外一个按代替它!(立竿见影!) KeyboardShield 还可以在您的笔记本盘上,设置出一个数字小盘,方便数字输入。 KeyboardShield 是一款实用的屏蔽、重定义(改)小工具,可以屏蔽盘 按(单一按、组合按皆可屏蔽),也可以将某一按(或组合按)重新定义为其他新的按(可以将一个单一按,重新定义成多个按的组合按,反之亦然)。 您可以从盘上直接输入按,但是当您的盘上某一损坏,或您的盘上没有某时,可以从列表中选择输入按。 【提示1】注意在按之前,先确定输入焦点:“原按”或者“新按”(选中的输入焦点为粉红色)。当“原按”和“新按”显示的内容是您所期望的按时,点击“添加”按钮。 【提示2】除了直接按以及选择列表之外,您还可以直接输入编码,实现所需的各种按屏蔽及重定义。 【编码规则】: a 代表 Alt ,c 代表 Ctrl ,s 代表 Shift ,w 代表 Win 以 v 开头后加数字,表示按编码。 该编码可以从“选择输入”选择框中查到, 选择一项,则“当前按编码”显示就是选中那项按的编码。此时不要按,否则显示的会所按按的编码。总之,“当前按编码”显示的是最近一次输入(无论是按还是列表选择)的编码。 以“_”区分原按和新按的编码,前为原按编码,后为新按编码 x 表示屏蔽 【注意】a、c、s、w 可以不分前后顺序,但是必须都要在 v 之前。 【规范例子】acwsv65_acwsv78 或者 acwsv56_x 例如: v95_x 表示屏蔽 Sleep (计算机睡眠) wv76_x 表示将组合 Win + L 屏蔽 acv65_x 表示将组合 Ctrl + Alt + A 屏蔽 v65_v66 表示将按 A 重新定义为 B,以后按 A ,就相当于按 B 。 v115_av115 表示将按 F4 重新定义为 Alt + F4 组合。 v123_v172 表示将 F12 重新定义为 “浏览主页”按,按F12就会上网访问IE主页。 v120_csv27 表示将 F9 重新定义为 Ctrl + Shift + Esc 组合,按F9就会弹出任务管理器。 【提示3】对于某些危险按屏蔽(例如 Sleep 睡眠按等),您可以先选中“屏蔽所有按”,然后再按某一个您想屏蔽的按,当它出现在“原按”后, 点击“添加”按钮,即加入到了屏蔽列表当中。最后勾掉“屏蔽所有按”即可 。 【提示4】在“更多设置”中,有专门针对 Ctrl + Alt + Del、Alt + Shift + NumLock 特殊组合的处理。 【提示5】在“更多设置”中,或者点击鼠标菜单,有“保存”与“载入”功能,可以将当前已添加的按设置保存起来,方便以后载入。 【提示6】开启或关闭屏蔽、按功能的快捷默认情况下为 Ctrl + F12。您也可以定义成其他的按,点击鼠标,选择“设为屏蔽开关快捷”,则将当前的按设为屏蔽、改功能开关的快捷。 绿色软件,无需安装,免费使用。运行需要 Microsoft .NET Framework 2.0 或更高版本支持。如果软件无法运行,您需要检查您的计算机上是否已安装Microsoft .NET Framework 2.0。Microsoft .NET Framework 2.0 可以在各大网站免费下载得到。 如果有其他疑问或建议,请联系:E-mail: WJW-Davy@QQ.com 或 登陆主页:http://hi.baidu.com/wjwdavy

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧