屏蔽Windows按键(除却ALT+CTRL+DELETE)
钩子(hook),指用api来提前拦截并处理windows消息的手段。
全局钩子是系统钩子的一种,当指定的一些消息被系统中任何应用程序所处理时,这个钩子就被调用。
ALT+CTRL+DELETE是微软的操作系统直接处理的按键事件。除此之外,其它的按键都可以由我们来自行控制。
下面,来看一下键盘钩子是如何实现的。
//声明用到的钩子
HHOOK keyHook = NULL;
//先声明函数,实现在下面
LRESULT CALLBACK keyProc(int nCode,WPARAM wParam,LPARAM lParam );
//初始化钩子,关闭键盘事件(除了ALT+CTRL+DELETE)
void initHook()
{
keyHook = SetWindowsHookEx(WH_KEYBOARD_LL, keyProc, GetModuleHandle(NULL), 0);
}
//销毁钩子
void unHook()
{
UnhookWindowsHookEx(keyHook);
}
//钩子用的函数
LRESULT CALLBACK keyProc(int nCode,WPARAM wParam,LPARAM lParam )
{
//在WH_KEYBOARD_LL模式下lParam 是指向KBDLLHOOKSTRUCT类型地址
KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
//如果nCode等于HC_ACTION则处理该消息,如果小于0,则钩子子程就必须将该消息传递给 CallNextHookEx
if(nCode == HC_ACTION){
if(pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL)& 0x8000 && GetAsyncKeyState(VK_SHIFT)&0x8000){
qDebug() << "Ctrl+Shift+Esc";
}else if(pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL) & 0x8000){
qDebug() << "Ctrl+Esc";
}else if(pkbhs->vkCode == VK_TAB && pkbhs->flags & LLKHF_ALTDOWN){
qDebug() << "Alt+Tab";
}else if(pkbhs->vkCode == VK_ESCAPE && pkbhs->flags &LLKHF_ALTDOWN){
qDebug() << "Alt+Esc";
}else if(pkbhs->vkCode == VK_LWIN || pkbhs->vkCode == VK_RWIN){
qDebug() << "LWIN/RWIN";
}else if(pkbhs->vkCode == VK_F4 && pkbhs->flags & LLKHF_ALTDOWN){
qDebug() << "Alt+F4";
}
if(pkbhs->vkCode == VK_F1 && pkbhs->flags &LLKHF_ALTDOWN) {
unHook();
qDebug() << "Alt+F1 back room";
}
return 1;//返回1表示截取消息不再传递,返回0表示不作处理,消息继续传递
}
return CallNextHookEx(keyHook, nCode, wParam, lParam);
}
屏蔽Windows按键(除却ALT+CTRL+DELETE)相关推荐
- electorn+AutoHotkey屏蔽windows按键
说明:屏蔽windows快捷键的方式有多种,可以写c++插件引入到程序中,当然如何对c++了解到不够深入,成本可能比较高,另外就是采用autoHotKey,windows 平台下的热键脚本语言程序,低 ...
- java屏蔽功能键_Java屏蔽Windows按键代码
用java 能实现这功能吗,iHookKeyboard (屏蔽键盘...,想用java 实现. 不行的,JAVA没有钩子,可以考虑通过JNI调用C. 如何用JAVA做禁用键盘,鼠标,任务管理器等任人都 ...
- 屏蔽Windows系统输入法快捷键Ctrl+Space
快速解决 新建文件1.reg 写入以下内容 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Control Panel\Input Met ...
- 利用底层键盘钩子屏蔽任意按键
很多人都知道,如果想在系统范围内屏蔽键盘上的任意按键需要使用全局键盘钩子,然而像win键这样"倔强"的按键又不是普通的键盘钩子就能搞定的.这里我提供一种利用底层键盘钩子屏蔽任意按键 ...
- 修改注册表屏蔽windows系统快捷键的方法
1.屏蔽鼠标右键 HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer 修改内容: 在 ...
- 如何使Windows 10的Alt + Tab应用程序切换器更加透明
By default, the Alt+Tab app switcher in Windows is nearly opaque. If you'd like to see a little more ...
- Android4.3 屏蔽HOME按键返回桌面详解(源码环境下)
点击打开链接 首先声明我是做系统开发的(高通平台),所以下面介绍的方法并不适合应用开发者. 最经有个需求要屏蔽HOME按键返回桌面并且实现自己的功能,发现以前的方式报错用不了,上网搜索了一下,发现都是 ...
- Atom.io设置ctrl+delete
一般常见的text editor,在文本前面的空白处按下ctrl+delete,只是删除空白符到单词前面停下,但是Atom.io的默认设置,把空白符后遇到的第一个单词也删掉了.改配置方法是在keyma ...
- redhat5.8 alt+ctrl+f1 黑屏
/*********************************************************************** redhat5.8 alt+ctrl+f1 黑屏* 说 ...
最新文章
- windows mobile开发循序渐进(4)移动应用程序的数据存储之本地数据存储第二篇
- unity热更新json_Unity3D热更新 CSHotFix入门教程之HelloWorld
- Dubbo系统间通信
- RocketMQ的Producer详解之分布式事务消息(原理分析)
- Flink部署、使用、原理简介
- Django ORM models操作
- 江苏卫视舞蹈演员机器人_百度机器人踢馆江苏卫视《芝麻开门》
- springboot毕设项目自驾旅游网站的设计与实现gah85(java+VUE+Mybatis+Maven+Mysql)
- Web前端期末大作业--中国港珠澳大桥网页设计(HTML+CSS+JavaScript)实现
- Linux centOS 修改欢迎界面
- html 滚动字幕如何设置,如何制作滚动字幕 视频画面加滚动字幕,自己设置滚动字幕的显示时间(滚动次数)...
- 云原生监控报警可视化
- KendoUI模板引擎 - 概述
- 阿里云ACE高级工程师的备考经验分享
- 做网站九年拥有了梦寐以求的域名
- pytorch 优化器
- 如何使用SolidWorks软件导出URDF机器人模型文件 — 00 给SolidWorks软件安装 sw_urdf_exporte
- dokuwiki中文linux,Linux 下面 Dokuwiki 安装 - Dokuwiki 中文教程
- 啊哈--算法 开启树之旅
- #统计分析基础-数据统计与图表
热门文章
- 高新计算机考试1-8视频,最新版计算机高新考试ps第1单元1 8.doc
- 2016逗比的猿生活
- Win2K无盘终端网组建全攻略(1)(转)
- js实现在线AES加密解密(支持ECB,CBC,并输出Base64或Hex)
- 火影忍者服务器维护时间,火影忍者ol停机联服 本次维护预计时间为9.5小时
- 《缠中说禅108课》72:本 ID 已有课程的再梳理
- 想做好app测试,只需要做好这些!
- 即时通讯:XMPP项目实践-微聊
- 职称计算机 只做模拟题,2017职称计算机考试Dreamweaver模拟练习题
- 传奇gm命令怎么用_全新强大的传奇GM后台命令脚本