c语言禁用键盘,C/C++ 禁用鼠标键盘

不多说,先上代码

运行的时候,会弹出”hello,leon”.

此功能用低级键盘钩子和低级鼠标钩子实现

用到的函数接口:( SetWindowsHookEx)

/************************************************/

SetWindowsHookEx:     (Windows消息处理机制的一个平台)

声明:

HHOOK WINAPISetWindowsHookEx(

__in int idHook, \\钩子类型

__in HOOKPROC lpfn, \\回调函数地址

__in HINSTANCE hMod, \\实例句柄

__in DWORD dwThreadId); \\线程ID

SetWindowsHookEx

参数一:钩子的类型

参数二:回调函数指针,处理消息

参数三:程序运行的实例句柄。

参数四:范围,0 表示全局钩子,普通的全局钩子需要写入在 dll 里面。

/************************************************/

如需禁用鼠标和键盘,只需要在对应的回调函数中返回ture,即如源代码中的LowLevelKeyboardProcAll和LowLevelMouseProcAll函数中return true;

后记:

A

之所以使用intWINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, intiCmdShow){}

而不是通常写C/C++程序那样的int main(){}

因为前者可以屏蔽掉那个dos黑窗口,这样有利于写一些小病毒成都避免被用户发现.(用codeblocks编译貌似不能屏蔽掉那个dos黑窗口~挣扎了好久放弃了.换个编译器就解决的问题咯)

B

可以用C/C++做一个程序屏蔽部分按键或者获取键盘和鼠标的输入,例如:

/*

LRESULT CALLBACK LowLevelKeyboardProc(intnCode, WPARAM wParam, LPARAM lParam)

{

PKBDLLHOOKSTRUCTp = (PKBDLLHOOKSTRUCT) lParam;

if(nCode == HC_ACTION)

{

if( (p->vkCode == VK_LWIN) || (p->vkCode == VK_RWIN) ||                                   // 屏蔽左win

(p->vkCode == VK_TAB && (p->flags & LLKHF_ALTDOWN) != 0) ||

(p->vkCode == VK_ESCAPE && (p->flags & LLKHF_ALTDOWN) != 0) || ))            //屏蔽ALT+Tab

returnTRUE ;

}

returnCallNextHookEx ( hLLKeyboard, nCode, wParam, lParam ) ;

}

*/

当然,可以修改为记录用户的按键,为了遵守相关法律法规还是不多写了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值