Qt程序如何屏蔽Alt+F4按键?
windows环境下需要屏蔽一些按键,如Alt+F4,放置程序被关闭。
使用Qt的事件肯定不行,这时候就需要使用到系统API了。windows系统下可以使用钩子来
获取按键事件。具体步骤如下:
1. 引入user32.lib,在pro文件中加入
win32{
LIBS += -luser32
}
改动pro文件,记得qmake一下。
2. 包含头文件Windows.h
#include<Windows.h>
3. 处理钩子的回调函数。
屏蔽按键的关键就在于,识别到按键后return 1,不再继续传递。其他情况就调用CallNextHookEx继续按原来的方式进行。
4.使用SetWindowsHookEx函数安装一个钩子
函数有四个参数,第一个是钩子的类型。第二个就是上面写的回调函数,第三个实例句柄和第四个线程ID这里都用不上。
返回值就是钩子处理的句柄,可以用来卸载钩子。 如果安装失败返回值是0。
5.测试结果
运行程序后按下alt + F4后打印出信息,且应用程序不被关闭。
要屏蔽其他按键只需要查询一下按键的枚举替换上去即可。
---> 文章来源于我的个人博客:fearlazy
---> 编程是一件怎么也学不会的事情,但是如果能享受学习的过程也是挺好的。