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/
  • 相关阅读:
    c++父类指针子类指针转化分析
    setbuf手册
    c++细节
    cf727e
    总结
    UVa 10192 Vacation (最长公共子序列)
    HUNNU 11313 最长公共子序列(LCS)
    HDU 2069 Coin Change (经典DP)
    UVa 674 Coin Change (经典DP)
    UVa 10131 Is Bigger Smarter? (LDS+数据结构排序)
  • 原文地址:https://www.cnblogs.com/liye/p/1644124.html
Copyright © 2011-2022 走看看