创建系统级热键 C++ builder为例

简介: 系统级热键,不论程序是否有焦点,都能起作用。就像QQ截图上用 ctrl alt A 鍵一样。 步骤: 注册热键: RegisterHotKey(this->Handle,1008,NULL,VK_F2)//将F2注册为系统级热键RegisterHotKey(this->Handle,100...

系统级热键,不论程序是否有焦点,都能起作用。就像QQ截图上用 ctrl alt A 鍵一样。

步骤:

    1. 注册热键:
RegisterHotKey(this->Handle,1008,NULL,VK_F2)//将F2注册为系统级热键
RegisterHotKey(this->Handle,1009,NULL,VK_F3)
RegisterHotKey是一个API函数,原型:

BOOL RegisterHotKey(

    HWND hWnd,    // 接收通知的窗口句柄   
    int id,    // 热键的标识符,区别于其它热键区间(0x0000 0xBFFF) 一个共享的dll标识符区间(0xC000  0xFFFF)
    UINT fsModifiers,    //由vk参数定义的键一起按下的键可以是如ctrl alt shift等等键的结合
    UINT vk     // 所指定的热键的虚拟键码   );

  • 声明消息响应函数和消息映射
    声明消息映射:

BEGIN_MESSAGE_MAP
        MESSAGE_HANDLER(WM_HOTKEY,TMessage,Start)
END_MESSAGE_MAP(TForm)//消息映射
void __fastcall HotKeyMsgFunc(TMessage &msg);//消息响应函数
  • 消息响应函数的实现:
    先说说WM_HOTKEY消息:
    WParam:代表注册的热键的标识符
    lParam:低位表示热键的组合键如Alt SHift等。。高位表示注册的热键
    void __fastcall TForm1::Start(TMessage &msg)
    {
        if(msg.WParam==1008)
        {
            myThread=new TCrushThread(false);
    
        }
        if(msg.WParam==1009)
        {
            myThread->Terminate();
    
    
        }
    
    
    }
  • 释放注册的热键
    主要是在程序将要结束的时候:例如:
    UnregisterHotKey(this->Handle,1008);
    
    UnregisterHotKey(this->Handle,1009);

     
相关文章
|
4月前
|
算法 C语言 C++
C++语言学习指南:从新手到高手,一文带你领略系统编程的巅峰技艺!
【8月更文挑战第22天】C++由Bjarne Stroustrup于1985年创立,凭借卓越性能与灵活性,在系统编程、游戏开发等领域占据重要地位。它继承了C语言的高效性,并引入面向对象编程,使代码更模块化易管理。C++支持基本语法如变量声明与控制结构;通过`iostream`库实现输入输出;利用类与对象实现面向对象编程;提供模板增强代码复用性;具备异常处理机制确保程序健壮性;C++11引入现代化特性简化编程;标准模板库(STL)支持高效编程;多线程支持利用多核优势。虽然学习曲线陡峭,但掌握后可开启高性能编程大门。随着新标准如C++20的发展,C++持续演进,提供更多开发可能性。
89 0
|
3月前
|
C++
【C++案例】一个项目掌握C++基础-通讯录管理系统
这篇文章通过一个通讯录管理系统的C++项目案例,详细介绍了如何使用C++实现添加、显示、删除、查找、修改和清空联系人等功能。
55 3
|
4月前
|
存储 C++
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
105 1
【C++】C++ 基于QT实现散列表学生管理系统(源码+数据+课程论文)【独一无二】
|
4月前
|
Rust 安全 C++
系统编程的未来之战:Rust能否撼动C++的王座?
【8月更文挑战第31天】Rust与C++:现代系统编程的新选择。C++长期主导系统编程,但内存安全问题频发。Rust以安全性为核心,通过所有权和生命周期概念避免内存泄漏和野指针等问题。Rust在编译时确保内存安全,简化并发编程,其生态系统虽不及C++成熟,但发展迅速,为现代系统编程提供了新选择。未来有望看到更多Rust驱动的系统级应用。
69 1
|
4月前
|
存储 算法 数据可视化
【C++】C++旅游管理系统(源码+论文)【独一无二】
【C++】C++旅游管理系统(源码+论文)【独一无二】
|
4月前
|
存储 数据挖掘 C语言
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
【C/C++】C/C++车辆交通违章管理系统(源码+数据文件)【独一无二】
|
4月前
|
搜索推荐 数据处理 文件存储
【C++】C++ 培训报名系统 (源码+论文)【独一无二】
【C++】C++ 培训报名系统 (源码+论文)【独一无二】
|
4月前
|
存储 C++
【C++】C++公司人事管理系统(源码)【独一无二】
【C++】C++公司人事管理系统(源码)【独一无二】
140 2
|
4月前
|
存储 数据可视化 C++
【C++】C++-机房收费管理系统(源码+注释)【独一无二】
【C++】C++-机房收费管理系统(源码+注释)【独一无二】
|
4月前
|
数据可视化 C++
【C++】C++商店销售管理系统(源码+论文)【独一无二】
【C++】C++商店销售管理系统(源码+论文)【独一无二】