//先定义
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)