📄 hooks.h
字号:
#ifndef WM_USER_INPUT_CHAR
//输入板上的字符操作
#define WM_USER_INPUT_CHAR (WM_USER+2)
#endif
#ifndef WM_USER_SCROLL_PAGE
//进行翻页
#define WM_USER_SCROLL_PAGE (WM_USER+4)
#endif
#define MAX_CHAR_NUM 77 //其它键最大数目
#define MAX_SYMBOL_NUM 94 //西文字符数
//#define VK_ESCAPE 0x1b
#define VK_F1 0x70
#define VK_F2 0x71
#define VK_F3 0x72
#define VK_F4 0x73
#define VK_F5 0x74
#define VK_F6 0x75
#define VK_F7 0x76
#define VK_F8 0x77
#define VK_F9 0x78
#define VK_F10 0x79
//#define VK_F11 0x7a
//#define VK_F12 0x7b
//#define VK_SNAPSHOT 0x2c
#define VK_PAUSE 0x13
#define VK_BACK 0x08
#define VK_TAB 0x09
//#define VK_RETURN 0x0d
#define VK_SPACE 0x20
//#define VK_INSERT 0x2d
//#define VK_DELETE 0x2e
#define VK_HOME 0x24
#define VK_END 0x23
#define VK_PRIOR 0x21
#define VK_NEXT 0x22
#define VK_LEFT 0x25
#define VK_UP 0x26
#define VK_RIGHT 0x27
#define VK_DOWN 0x28
#define VK_0 '0'
#define VK_1 '1'
#define VK_2 '2'
#define VK_3 '3'
#define VK_4 '4'
#define VK_5 '5'
#define VK_6 '6'
#define VK_7 '7'
#define VK_8 '8'
#define VK_9 '9'
#define VK_A 'A'
#define VK_B 'B'
#define VK_C 'C'
#define VK_D 'D'
#define VK_E 'E'
#define VK_F 'F'
#define VK_G 'G'
#define VK_H 'H'
#define VK_I 'I'
#define VK_J 'J'
#define VK_K 'K'
#define VK_L 'L'
#define VK_M 'M'
#define VK_N 'N'
#define VK_O 'O'
#define VK_P 'P'
#define VK_Q 'Q'
#define VK_R 'R'
#define VK_S 'S'
#define VK_T 'T'
#define VK_U 'U'
#define VK_V 'V'
#define VK_W 'W'
#define VK_X 'X'
#define VK_Y 'Y'
#define VK_Z 'Z'
#define MAX_KEYS_NUM 256 //键盘键的数目
//热键参数
class CHotKeyParam
{
public:
int m_nHotKeyNum ; //热键数目
//热键内容
BOOL m_bCtrl[MAX_HOT_KEY] ; //Ctrl键状态,0无,1有
BOOL m_bAlt[MAX_HOT_KEY] ; //Alt键状态,0无,1有
BOOL m_bShift[MAX_HOT_KEY] ; //Shift键状态,0无,1有
int m_nChar[MAX_HOT_KEY] ; //其它键
//其它键状态,0按下时有效,1弹起时有效
BOOL m_bCharStatus[MAX_HOT_KEY] ;
//判断该热键是否有效,1有效,0无效
BOOL m_bEnable[MAX_HOT_KEY] ;
FARPROC m_fpFunc[MAX_HOT_KEY] ; //与该热键关联的执行函数
HHOOK m_hHookHandle ; //钩子句柄
//按钮动作是否有效,1有效,0无效,初始为1
BOOL m_bActionOk ;
//标记按过那个热键,如果是-1,则没有按过
int m_nHaveDoneKey ;
//每个键的状态,0按下,1没有,初始为1
BOOL m_bKeysStatus[MAX_KEYS_NUM] ;
public:
CHotKeyParam( void ) ;
~CHotKeyParam( void ) ;
void SetEnableFlag( int n , BOOL b ) ;
} ;
//WH_GETMESSAGE 钩子函数对象
class CGetMessageParam
{
public:
HHOOK m_hHookHandle ; //钩子句柄
HWND m_hFocusWnd ; //当前有输入焦点的窗口
public:
CGetMessageParam( void ) ;
~CGetMessageParam( void ) ;
};
#ifdef __cplusplus
extern "C" {
#endif
//当按下某键时,判断是否有符合条件的热键
BOOL JudgeKeysWhenDown( WPARAM wParam ) ;
//当松开某键时,判断是否有符合条件的热键
BOOL JudgeKeysWhenUp( WPARAM wParam ) ;
//判断是否所有键的状态都符合要求
BOOL AllKeysStatusIsOk( int n ) ;
//热键钩子函数
LRESULT CALLBACK HotKeyProc(
int code , /* process-message flag */
WPARAM wParam , /* virtual-key code */
LPARAM lParam ) ; /* keyboard-message information */
//指取翻译辅助键
void AidFinger( void ) ;
//输入法向后翻页
void PageNext( void ) ;
//输入法向前翻页
void PagePrior( void ) ;
//WH_GETMESSAGE钩子函数
LRESULT __export CALLBACK GetMessageProc(
int code , /* process-message flag */
WPARAM wParam , /* undefined */
LPARAM lParam ) ; /* pointer to MSG structure */
#ifdef __cplusplus
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -