zoukankan      html  css  js  c++  java
  • Delphi RegisterHotKey 设置系统热键

    Symbolic

    constant name

    Value

    (hexadecimal)

    Keyboard (or mouse) equivalent

    VK_LBUTTON

    01

    Left mouse button

    VK_RBUTTON

    02

    Right mouse button

    VK_CANCEL

    03

    Control-break processing

    VK_MBUTTON

    04

    Middle mouse button (three-button mouse)

    VK_BACK

    08

    BACKSPACE key

    VK_TAB

    09

    TAB key

    VK_CLEAR

    0C

    CLEAR key

    VK_RETURN

    0D

    ENTER key

    VK_SHIFT

    10

    SHIFT key

    VK_CONTROL

    11

    CTRL key

    VK_MENU

    12

    ALT key

    VK_PAUSE

    13

    PAUSE key

    VK_CAPITAL

    14

    CAPS LOCK key

    VK_ESCAPE

    1B

    ESC key

    VK_SPACE

    20

    SPACEBAR

    VK_PRIOR

    21

    PAGE UP key

    VK_NEXT

    22

    PAGE DOWN key

    VK_END

    23

    END key

    VK_HOME

    24

    HOME key

    VK_LEFT

    25

    LEFT ARROW key

    VK_UP

    26

    UP ARROW key

    VK_RIGHT

    27

    RIGHT ARROW key

    VK_DOWN

    28

    DOWN ARROW key

    VK_SELECT

    29

    SELECT key

    VK_PRINT

    2A

    PRINT key

    VK_EXECUTE

    2B

    EXECUTE key

    VK_SNAPSHOT

    2C

    PRINT SCREEN key

    VK_INSERT

    2D

    INS key

    VK_DELETE

    2E

    DEL key

    VK_HELP

    2F

    HELP key

    30

    0 key

    31

    1 key

    32

    2 key

    33

    3 key

    34

    4 key

    35

    5 key

    36

    6 key

    37

    7 key

    38

    8 key

    39

    9 key

    41

    A key

    42

    B key

    43

    C key

    44

    D key

    45

    E key

    46

    F key

    47

    G key

    48

    H key

    49

    I key

    4A

    J key

    4B

    K key

    4C

    L key

    4D

    M key

    4E

    N key

    4F

    O key

    50

    P key

    51

    Q key

    52

    R key

    53

    S key

    54

    T key

    55

    U key

    56

    V key

    57

    W key

    58

    X key

    59

    Y key

    5A

    Z key

    VK_NUMPAD0

    60

    Numeric keypad 0 key

    VK_NUMPAD1

    61

    Numeric keypad 1 key

    VK_NUMPAD2

    62

    Numeric keypad 2 key

    VK_NUMPAD3

    63

    Numeric keypad 3 key

    VK_NUMPAD4

    64

    Numeric keypad 4 key

    VK_NUMPAD5

    65

    Numeric keypad 5 key

    VK_NUMPAD6

    66

    Numeric keypad 6 key

    VK_NUMPAD7

    67

    Numeric keypad 7 key

    VK_NUMPAD8

    68

    Numeric keypad 8 key

    VK_NUMPAD9

    69

    Numeric keypad 9 key

    VK_SEPARATOR

    6C

    Separator key

    VK_SUBTRACT

    6D

    Subtract key

    VK_DECIMAL

    6E

    Decimal key

    VK_DIVIDE

    6F

    Divide key

    VK_F1

    70

    F1 key

    VK_F2

    71

    F2 key

    VK_F3

    72

    F3 key

    VK_F4

    73

    F4 key

    VK_F5

    74

    F5 key

    VK_F6

    75

    F6 key

    VK_F7

    76

    F7 key

    VK_F8

    77

    F8 key

    VK_F9

    78

    F9 key

    VK_F10

    79

    F10 key

    VK_F11

    7A

    F11 key

    VK_F12

    7B

    F12 key

    VK_F13

    7C

    F13 key

    VK_F14

    7D

    F14 key

    VK_F15

    7E

    F15 key

    VK_F16

    7F

    F16 key

    VK_F17

    80H

    F17 key

    VK_F18

    81H

    F18 key

    VK_F19

    82H

    F19 key

    VK_F20

    83H

    F20 key

    VK_F21

    84H

    F21 key

    VK_F22

    85H

    F22 key

    VK_F23

    86H

    F23 key

    VK_F24

    87H

    F24 key

    VK_NUMLOCK

    90

    NUM LOCK key

    VK_SCROLL

    91

    SCROLL LOCK key

    VK_LSHIFT

    A0

    Left SHIFT key

    VK_RSHIFT

    A1

    Right SHIFT key

    VK_LCONTROL

    A2

    Left CONTROL key

    VK_RCONTROL

    A3

    Right CONTROL key

    VK_LMENU

    A4

    Left MENU key

    VK_RMENU

    A5

    Right MENU key

    VK_PLAY

    FA

    Play key

    VK_ZOOM

    FB

    Zoom key

    //定义全局变量

    var 

      QuitId, ShowMe: Integer;

      //热键响应函数

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

      //注册热键

      QuitId := GlobalAddAtom('MyQuitId') - $C000;

      RegisterHotKey(Handle, QuitId, MOD_CONTROL, VK_F2);

     //注册热键

      ShowMe := GlobalAddAtom('MyShowMe') - $C000;

      RegisterHotKey(Handle, ShowMe, MOD_CONTROL, VK_F1);

      注:HotKeyId的合法取之范围是0x00000xBFFF之间,GlobalAddAtom函数得到的值在0xC0000xFFFF之间,所以减掉0xC000来满足调用要求。

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

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

      这个函数你应该能句举一反三了吧。

      原理:

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

      idHotKey=(int)wParam;//该参数在设置系统级的热键有用,一般不予使用

      fuModifiers=(UINT)LOWORD(lParam);//热键的辅助按键

      uVirtKey=(UINT)HIWORD(lParam);//热键的键值

      //释放热键

      UnRegisterHotKey(handle, QuitId);

      UnRegisterHotKey(handle, ShowMe);

      procedure TfrmMain.HotKeyDown(var Msg: Tmessage);

      begin

        if (Msg.LparamLo = MOD_CONTROL) AND (Msg.LParamHi = VK_F2) then //退出

        begin

          Close;

        end;

        if (Msg.LparamLo = MOD_CONTROL) AND (Msg.LParamHi = VK_F1) then

        begin

          Close;

        end;

      end;

  • 相关阅读:
    解压版(绿色版)Tomcat配置
    安装、设置与启动MySql绿色版的方法
    JDBC连接MySQL出现的问题
    可变长数组在GCC编译器中的实现
    关于取余
    java中类和接口的一点整理
    orgmode 写cnblogs 博文(一些问题的解决)
    This file is about changes in Emacs version 24.
    autocomplete插件使用中遇到的问题及原因
    junit&jmockit工具熟悉记录
  • 原文地址:https://www.cnblogs.com/blogpro/p/11452635.html
Copyright © 2011-2022 走看看