⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hook.c

📁 freedos32的源代码
💻 C
字号:
/* Keyborad Driver for FD32, Keyb Hook * by Hanzac Chen * * 2004 - 2005 * This is free software; see GPL.txt */#include <dr-env.h>typedef enum keyb_hook_type{  NORMAL_HOOK = 0,  CTRL_HOOK,  ALT_HOOK,  CTRL_ALT_HOOK,} keyb_hook_type_t;typedef void (*keyb_hook_func_t)(void);typedef struct keyb_hook{  keyb_hook_func_t hook[4];} keyb_hook_t;static keyb_hook_t hookmap[128];/* It is used setup the keyboard hooks *   WORD key is scancode */void keyb_hook(WORD key, int isCTRL, int isALT, DWORD hook_func){  int hook_type;  if (isCTRL && isALT) {    hook_type = CTRL_ALT_HOOK;  } else if (isALT) {    hook_type = ALT_HOOK;  } else if (isCTRL) {    hook_type = CTRL_HOOK;  } else {    hook_type = NORMAL_HOOK;  }  hookmap[key&0x00FF].hook[hook_type] = (keyb_hook_func_t)hook_func;}/* Fire the hook if exists */void keyb_fire_hook(WORD key, int isCTRL, int isALT){  int hook_type;  if (isCTRL && isALT) {    hook_type = CTRL_ALT_HOOK;  } else if (isALT) {    hook_type = ALT_HOOK;  } else if (isCTRL) {    hook_type = CTRL_HOOK;  } else {    hook_type = NORMAL_HOOK;  }    if (hookmap[key&0x00FF].hook[hook_type] != 0)    hookmap[key&0x00FF].hook[hook_type]();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -