1. 将所需的库添加到您的qmake项目(.PRO文件)
LIBS += \
-lUser32

2.在代码中包含所需的头文件。

#include <windows.h>
  1. 在程序开始时注册热键
// 热键id
#define HOT_KEY_ALT_CTRL_M 0
#define HOT_KEY_CTRL_A 1 MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this); // ALT + CTRL + M
if (!RegisterHotKey(HWND(winId()), HOT_KEY_ALT_CTRL_M, MOD_ALT | MOD_CONTROL, 0x4D))
{
qDebug() << "注册热键 ALT + CTRL + M ok.";
} // CTRL + A
if (!RegisterHotKey(HWND(winId()), HOT_KEY_CTRL_A, MOD_CONTROL, 0x41))
{
qDebug() << "注册热键 CTRL + A ok.";
}
}
  1. 重写MainWindow应用程序中的nativeEvent函数

先申明

bool nativeEvent(const QByteArray &eventType, void *message, long *result);

在实现

bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
Q_UNUSED(eventType);
Q_UNUSED(result);
MSG* msg = static_cast<MSG*>(message);
if (msg->message == WM_HOTKEY)
{
switch (msg->wParam) {
case HOT_KEY_ALT_CTRL_M:
qDebug() << "触发了: ALT + CTRL + M";
break;
case HOT_KEY_CTRL_A:
qDebug() << "触发了: CTRL + A";
break;
default:
qDebug() << "被注入了其他热键.";
}
return true;
}
return false;
}

ok...

最新文章

  1. SQL Server 阻止了对组件“xp_cmdshell”的 过程“sys.xp_cmdshell”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
  2. ORACLE lag()与lead() 函数
  3. 深入理解js构造函数
  4. js中的this指针(三)
  5. Vectoroid
  6. shell与变量的声明的操作
  7. MyISAM和InnoDB的索引在实现上的不同
  8. [转]Android进程与线程基本知识
  9. Castle IOC容器内幕故事(上)
  10. WebConfig特殊字符的转义!
  11. debian/ubuntu部署java应用小结
  12. 在ASP.Net Core下,Autofac实现自动注入
  13. ASP.NET MVC 中 View 的设计
  14. 测试驱动开发 TDD
  15. 什么是基于风险的测试(RBT)?
  16. jquery如何在元素后面添加一个元素
  17. 树状数组训练题2:SuperBrother打鼹鼠(vijos1512)
  18. php7 AES IOS Android
  19. 选择合适NFC标签
  20. 认识J2EE规范或标准以及J2EE和JEE有什么不同?

热门文章

  1. 网络流 - dinic + 当前弧优化【代码】
  2. 题解 CF620E 【New Year Tree】
  3. Springboot 项目部署到服务器上
  4. ThinkPHP 漏洞利用
  5. Spark踩坑填坑-聚合函数-序列化异常
  6. redis学习教程五《管道、分区》
  7. Zookeeper+Kafka+Spark streaming单机整合开发
  8. Array循环for、for in、for of、forEach各间优劣
  9. JavaScript里处理数组的一些常用方法
  10. 2018-2019 ACM-ICPC Brazil Subregional Programming Contest PART (10/13)