BCB6下编写的程序,如何屏蔽 *** 作系统的一些键盘按键?

BCB6下编写的程序,如何屏蔽 *** 作系统的一些键盘按键?,第1张

钩子函数,代码如下:

//先定义

HHOOK OldHook// 钩子 句柄

/注册和销毁你可以放到2个按纽里。

//注册 钩子

OldHook = SetWindowsHookEx(

WH_KEYBOARD_LL, (HOOKPROC

)KeyProc, HInstance, 0)

// 销毁 钩子

UnhookWindowsHookEx(OldHook)

//这个是钩子的回调函数

//键盘钩子 封锁 windows 热键

long CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam)

{

KBDLLHOOKSTRUCT *pkbhs

if (code < 0)

{

return CallNextHookEx(OldHook,

code, wParam, lParam)

}

pkbhs = (KBDLLHOOKSTRUCT*) lParam

if (pkbhs->vkCode==91)//封锁win键

{

return 1

}

if (pkbhs->vkCode==VK_ESCAPE &&

GetAsyncKeyState(VK_CONTROL)<0)

{

return 1//封锁 CTRL+ESC

}

if (pkbhs->vkCode==VK_TAB && pkbhs

->flags&LLKHF_ALTDOWN)

{

return 1//封锁 ALT+TAB

}

if (pkbhs->vkCode==115 && pkbhs

->flags&LLKHF_ALTDOWN)

{

return 1//封锁 ALT+F4

}

if (pkbhs->vkCode==VK_ESCAPE &&

pkbhs->flags&LLKHF_ALTDOWN)

{

return 1//封锁 ALT+ESC

}

if (pkbhs->vkCode==VK_SPACE &&

GetAsyncKeyState(VK_CONTROL)<0)

{

return 1//封锁 CTRL+ ' '

}

return CallNextHookEx(OldHook,

code, wParam, lParam)

}

我这里有,只需用到3个DLL命令,可以蒙蔽所有键盘:代码:

.版本

2.程序集

窗口程序集1

.程序集变量

钩子ID,

整数型.子程序

键盘失灵,

,

公开,

蒙蔽所有按键钩子ID

设置系统钩子_

(13,

&sss,

取进程句柄

(0),

0).子程序

sss

.子程序

恢复键盘,

,

公开,

恢复按键释放系统钩子_

(钩子ID)

DLL命令:

.版本

2.DLL命令

设置系统钩子_,

整数型,

"user32.dll",

"SetWindowsHookExA",

,

SetWindowsHookEx

.参数

钩子类型,

整数型,

,

idHook

.参数

回调函数地址,

子程序指针,

,

lpfn

.参数

实例句柄,

整数型,

,

hmod

.参数

线程ID,

整数型,

,

dwThreadId.DLL命令

取进程句柄,

整数型,

,

"GetModuleHandleA"

.参数

M,

整数型.DLL命令

释放系统钩子_,

整数型,

"user32.dll",

"UnhookWindowsHookEx",

,

UnhookWindowsHookEx

.参数

钩子句柄,

整数型,

,

hHook


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11973816.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存