M
mr.hl
Unregistered / Unconfirmed
GUEST, unregistred user!
找了一个晚上的任何屏蔽xp下的左或右win键,都不成功,注意我要的是所有状态下都屏蔽win键,不是在我的程序中屏蔽.比较好的一个刘麻子的,
============================动态链接库代码如下(您可以命名为hook.dpr)============直接把这部分拷贝到txt,然后改扩展名为dpr,之后编译得到dll
library HookDll;
uses windows;
var
HookH:HHook=0;//钩子句柄
//=====键盘 钩子回调 函数
function keyhook(Code:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
begin { 当Ctrl处于按下状态 }
if (( GetKeyState(VK_CONTROL) and $8000 )<>0) and (wParam=ord('P'))
then Result:=1//屏蔽
else Result:=CallNextHookEx(HookH,code,Wparam,lParam);
end;
procedure HookOn; //挂钩
begin
HooKH:=SetWindowsHookEx(WH_KEYBOARD,@keyHook,HInstance,0);
end;
procedure HookOff;//脱钩
begin
UnHookWindowsHookEx(HookH);
end;
exports //导出函数
HookOn,HookOff;
begin
end.
编译之后,我们在程序中调用 HookOn 即可。。
======================exe中:
.............
implementation
{$R *.dfm}
//引入动态连接库中函数
procedure HookOn ; external 'hook.dll';
procedure HookOff ; external 'hook.dll';
........
需要屏蔽的时候 HookOn;
需要恢复的时候 HookOff;
/////////////什么回车都能屏蔽,就是VK_LWIN没用!!!
谁给个方法吧...屏蔽xp下左或右win键,要能给出屏蔽win键和其他比如ALT+F4键的更好!谢谢.
============================动态链接库代码如下(您可以命名为hook.dpr)============直接把这部分拷贝到txt,然后改扩展名为dpr,之后编译得到dll
library HookDll;
uses windows;
var
HookH:HHook=0;//钩子句柄
//=====键盘 钩子回调 函数
function keyhook(Code:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
begin { 当Ctrl处于按下状态 }
if (( GetKeyState(VK_CONTROL) and $8000 )<>0) and (wParam=ord('P'))
then Result:=1//屏蔽
else Result:=CallNextHookEx(HookH,code,Wparam,lParam);
end;
procedure HookOn; //挂钩
begin
HooKH:=SetWindowsHookEx(WH_KEYBOARD,@keyHook,HInstance,0);
end;
procedure HookOff;//脱钩
begin
UnHookWindowsHookEx(HookH);
end;
exports //导出函数
HookOn,HookOff;
begin
end.
编译之后,我们在程序中调用 HookOn 即可。。
======================exe中:
.............
implementation
{$R *.dfm}
//引入动态连接库中函数
procedure HookOn ; external 'hook.dll';
procedure HookOff ; external 'hook.dll';
........
需要屏蔽的时候 HookOn;
需要恢复的时候 HookOff;
/////////////什么回车都能屏蔽,就是VK_LWIN没用!!!
谁给个方法吧...屏蔽xp下左或右win键,要能给出屏蔽win键和其他比如ALT+F4键的更好!谢谢.