//以下代码在Delphi7 + XP SP3下测试通过 //button1为注册钩子屏蔽,button2为卸载钩子取消屏蔽F1 unit Unit1; interface uses Windo
来源:互联网 发布:斯巴达英雄java游戏 编辑:程序博客网 时间:2024/06/05 15:34
//以下代码在Delphi7 + XP SP3下测试通过
//button1为注册钩子屏蔽,button2为卸载钩子取消屏蔽F1
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;
var
Form1: TForm1;
WM_Sock :Integer;
hHandle :HWND;
Hook :HHook;
implementation
{$R *.dfm}
function LowLevelKeyboardProc(vNode:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
type
KbDllHookStruct = record
vkCode:DWord;
ScanCode:DWord;
Flags:DWord;
Time:DWord;
dwExtraInfo:DWord;
end;
var
P:^KbDllHookStruct;
begin
Result := 0;
P := Pointer(LPARAM);
if vNode = HC_ACTION then
begin
case wParam of
WM_KEYDOWN,WM_SYSKEYDOWN,WM_KEYUP,WM_SYSKEYUP:
if p.vkCode = VK_F1 then //判断按下的是不是F1
begin
Result := 1;
end;
end;
if vNode <> 0 then
Result := CallNextHookEx(0,vNode,wParam,lParam);
end;
end;
//注册钩子
procedure TForm1.Button1Click(Sender: TObject);
const
WH_KEYBOARD_LL = 13;
begin
WM_SOCK := 0;
WM_SOCK := RegisterWindowMessage('WM_SOCK');
hHandle := Handle;
Hook := SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,hInstance,0);
end;
//卸载钩子
procedure TForm1.Button2Click(Sender: TObject);
begin
UnHookWindowsHookEx(Hook);
end;
end.
//button1为注册钩子屏蔽,button2为卸载钩子取消屏蔽F1
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;
var
Form1: TForm1;
WM_Sock :Integer;
hHandle :HWND;
Hook :HHook;
implementation
{$R *.dfm}
function LowLevelKeyboardProc(vNode:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
type
KbDllHookStruct = record
vkCode:DWord;
ScanCode:DWord;
Flags:DWord;
Time:DWord;
dwExtraInfo:DWord;
end;
var
P:^KbDllHookStruct;
begin
Result := 0;
P := Pointer(LPARAM);
if vNode = HC_ACTION then
begin
case wParam of
WM_KEYDOWN,WM_SYSKEYDOWN,WM_KEYUP,WM_SYSKEYUP:
if p.vkCode = VK_F1 then //判断按下的是不是F1
begin
Result := 1;
end;
end;
if vNode <> 0 then
Result := CallNextHookEx(0,vNode,wParam,lParam);
end;
end;
//注册钩子
procedure TForm1.Button1Click(Sender: TObject);
const
WH_KEYBOARD_LL = 13;
begin
WM_SOCK := 0;
WM_SOCK := RegisterWindowMessage('WM_SOCK');
hHandle := Handle;
Hook := SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,hInstance,0);
end;
//卸载钩子
procedure TForm1.Button2Click(Sender: TObject);
begin
UnHookWindowsHookEx(Hook);
end;
end.
阅读全文
0 0
- //以下代码在Delphi7 + XP SP3下测试通过 //button1为注册钩子屏蔽,button2为卸载钩子取消屏蔽F1 unit Unit1; interface uses Windo
- C# HOOK钩子屏蔽键盘代码
- 检测并屏蔽钩子
- ActiveX 钩子屏蔽功能键
- 使用调试钩子屏蔽全局钩子
- 使用调试钩子屏蔽全局钩子
- 使用调试钩子屏蔽全局钩子
- 使用调试钩子屏蔽全局钩子
- c# 钩子屏蔽键盘快捷键
- c# 钩子屏蔽键盘快捷键
- 利用底层键盘钩子屏蔽任意按键
- 利用底层键盘钩子屏蔽任意按键
- 利用底层键盘钩子屏蔽任意按键
- 利用底层键盘钩子屏蔽任意按键
- 利用底层键盘钩子屏蔽任意按键
- 利用底层键盘钩子屏蔽任意按键
- 利用底层键盘钩子屏蔽任意按键
- 屏蔽系统快捷键——消息钩子
- c:统计单词数量
- 九九乘法
- 计算输出xypq的值
- springboot 系统学习 4 redis cluster
- OJ屌丝的逆袭
- //以下代码在Delphi7 + XP SP3下测试通过 //button1为注册钩子屏蔽,button2为卸载钩子取消屏蔽F1 unit Unit1; interface uses Windo
- 1033. 旧键盘打字(20)
- 编程从键盘输入n,然后机算并输出1+2+3+...+n的值
- 1011. World Cup Betting (20)
- OpenCV 相关报错
- 类 / 对象
- ubuntu16.04中安装下载工具uget+aria2并配置Firefox
- Java流之缓冲流
- 训练日记