zoukankan      html  css  js  c++  java
  • delphi热键:delphi程序中定义热键的方法 转

    疯狂代码 http://www.crazycoder.cn/ :http:/www.crazycoder.cn/Delphi/Article11711.html


    用到3个API

    BOOL RegisterHotKey( HWND hWnd, //响应该热键窗口句柄 Int id, //该热键唯标识 UINT fsModiers, //该
    热键辅助按键 UINT vk //该热键键值 );

    为了得到唯标识我们还将用到另个API

    ATOM GlobalAddAtom(

    LPCTSTR lpString //自己设定个串


    );

    我们还要在退出时候消除这个热键 所以需要声明个全局变量:

    HotKeyId: Integer;



    第步:

    在窗口create事件中加入以下代码

    HotKeyId := GlobalAddAtom('MyHotKey') - $C000; 注: HotKeyId合法取的范围是0x0000到0xBFFF的间
    GlobalAddAtom得到值 在0xC000到0xFFFF的间所以减掉0xC000来满足要求

    第 2步:

    在上面代码下面加入:

    RegisterHotKey(Handle, hotkeyid, MOD_ALT, VK_F8);

    热键辅助按键包括Mod_Ctrl ,Mod_Alt,Mod_Sht,对于Windows兼容键盘还支持Windows 键即其键面上有
    Windows标志那个键其值为Mod_win

    上面 代码注册了个热键:ALT+F8当然如果你希望象TAKEIT那样只用F8, 就这么写:

    RegisterHotKey(Handle, hotkeyid, 0, VK_F8);

    注:handle是个特殊变量它表示当前窗口句柄

    这个你应该能句举反 3了吧

    原理:

    旦热键设置成功在应用过程中如果有相应键被按下Windows系统都会给你应 用发送个消息WM_HOTKEY不管
    你应用是否为当前活动其中WM_HOTKEY消 息格式为:

    idHotKey = () wParam; // 该参数在设置系统级热键有用,般不予使用 fuModiers = (UINT)
    LOWORD(lParam); //热键辅助按键 uVirtKey = (UINT) HIWORD(lParam); //热键键值

    第 3步:

    注册了热键就该写下响应代码了

    首先在头部分private段中加入声明 (作用是声明这个过程和声明变量类似 有关如何声明,过程请请参考各自帮
    助文件或其它资料):

    procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;

    然后在中加入如下代码:

    procedure Tf.HotKeyDown(var Msg: Tmessage); begin (Msg.LparamLo = MOD_ALT) AND
    (Msg.LParamHi = VK_F8 then) // 假设热键为ALT+F8 begin ShowMessage('F8'); end; end;

    最后步:

    在窗口close事件中加入

    UnRegisterHotKey(handle, HotKeyId); //注销HotKey, 释放资源



    atomid = GlobalAddAtom(ls_atomid) //得到ID保证不和其他应用发生冲突 ll_RC =
    RegisterHotKey(Handle(this), atomid, MOD_ALT + MOD_CONTROL, 65) //注册热键为Ctrl+Alt+A 65为
    'A' 2009-2-12 3:33:32
    疯狂代码 http://www.crazycoder.cn/
  • 相关阅读:
    Roce ofed 环境搭建与测试
    Ubuntu 1804 搭建NFS服务器
    Redhat 8.0.0 安装与网络配置
    Centos 8.1 安装与网络配置
    SUSE 15.1 系统安装
    VSpare ESXi 7.0 基本使用(模板、iso、SRIOV)
    VSpare ESXi 7.0 服务器安装
    open SUSE leap 15.1 安装图解
    KVM虚拟机网卡连接网桥
    GitHub Action一键部署配置,值得拥有
  • 原文地址:https://www.cnblogs.com/liye/p/1644124.html
Copyright © 2011-2022 走看看