global-hotkey
Version:
A native Node.js module for handling global hotkeys on Windows.
367 lines (359 loc) • 7.35 kB
TypeScript
export type KeyCombination = {
meta?: boolean,
shift?: boolean,
ctrl?: boolean,
alt?: boolean,
keyCode: number
}
export function addListener(keyCombination: KeyCombination, listener: () => void): number
export function removeListener(id: number): void
export function removeAllListeners(): void
export function startListening(): void
export function stopListening(): void
export function resetKeyPressed(): void
export const V_KEY_CODES : {
LBUTTON: 0x01,
RBUTTON: 0x02,
CANCEL: 0x03,
MBUTTON: 0x04,
XBUTTON1: 0x05,
XBUTTON2: 0x06,
BACK: 0x08,
TAB: 0x09,
CLEAR: 0x0C,
RETURN: 0x0D,
SHIFT: 0x10,
CONTROL: 0x11,
MENU: 0x12,
PAUSE: 0x13,
CAPITAL: 0x14,
KANA: 0x15,
HANGUL: 0x15,
JUNJA: 0x17,
FINAL: 0x18,
HANJA: 0x19,
KANJI: 0x19,
ESCAPE: 0x1B,
CONVERT: 0x1C,
NONCONVERT: 0x1D,
ACCEPT: 0x1E,
MODECHANGE: 0x1F,
SPACE: 0x20,
PRIOR: 0x21,
NEXT: 0x22,
END: 0x23,
HOME: 0x24,
LEFT: 0x25,
UP: 0x26,
RIGHT: 0x27,
DOWN: 0x28,
SELECT: 0x29,
PRINT: 0x2A,
EXECUTE: 0x2B,
SNAPSHOT: 0x2C,
INSERT: 0x2D,
DELETE: 0x2E,
HELP: 0x2F,
0: 0x30,
1: 0x31,
2: 0x32,
3: 0x33,
4: 0x34,
5: 0x35,
6: 0x36,
7: 0x37,
8: 0x38,
9: 0x39,
A: 0x41,
B: 0x42,
C: 0x43,
D: 0x44,
E: 0x45,
F: 0x46,
G: 0x47,
H: 0x48,
I: 0x49,
J: 0x4A,
K: 0x4B,
L: 0x4C,
M: 0x4D,
N: 0x4E,
O: 0x4F,
P: 0x50,
Q: 0x51,
R: 0x52,
S: 0x53,
T: 0x54,
U: 0x55,
V: 0x56,
W: 0x57,
X: 0x58,
Y: 0x59,
Z: 0x5A,
LWIN: 0x5B,
RWIN: 0x5C,
APPS: 0x5D,
SLEEP: 0x5F,
NUMPAD0: 0x60,
NUMPAD1: 0x61,
NUMPAD2: 0x62,
NUMPAD3: 0x63,
NUMPAD4: 0x64,
NUMPAD5: 0x65,
NUMPAD6: 0x66,
NUMPAD7: 0x67,
NUMPAD8: 0x68,
NUMPAD9: 0x69,
MULTIPLY: 0x6A,
ADD: 0x6B,
SEPARATOR: 0x6C,
SUBTRACT: 0x6D,
DECIMAL: 0x6E,
DIVIDE: 0x6F,
F1: 0x70,
F2: 0x71,
F3: 0x72,
F4: 0x73,
F5: 0x74,
F6: 0x75,
F7: 0x76,
F8: 0x77,
F9: 0x78,
F10: 0x79,
F11: 0x7A,
F12: 0x7B,
F13: 0x7C,
F14: 0x7D,
F15: 0x7E,
F16: 0x7F,
F17: 0x80,
F18: 0x81,
F19: 0x82,
F20: 0x83,
F21: 0x84,
F22: 0x85,
F23: 0x86,
F24: 0x87,
NUMLOCK: 0x90,
SCROLL: 0x91,
OEM_NEC_EQUAL: 0x92,
OEM_FJ_JISHO: 0x92,
OEM_FJ_MASSHOU: 0x93,
OEM_FJ_TOUROKU: 0x94,
OEM_FJ_LOYA: 0x95,
OEM_FJ_ROYA: 0x96,
LSHIFT: 0xA0,
RSHIFT: 0xA1,
LCONTROL: 0xA2,
RCONTROL: 0xA3,
LMENU: 0xA4,
RMENU: 0xA5,
BROWSER_BACK: 0xA6,
BROWSER_FORWARD: 0xA7,
BROWSER_REFRESH: 0xA8,
BROWSER_STOP: 0xA9,
BROWSER_SEARCH: 0xAA,
BROWSER_FAVORITES: 0xAB,
BROWSER_HOME: 0xAC,
VOLUME_MUTE: 0xAD,
VOLUME_DOWN: 0xAE,
VOLUME_UP: 0xAF,
MEDIA_NEXT_TRACK: 0xB0,
MEDIA_PREV_TRACK: 0xB1,
MEDIA_STOP: 0xB2,
MEDIA_PLAY_PAUSE: 0xB3,
LAUNCH_MAIL: 0xB4,
LAUNCH_MEDIA_SELECT: 0xB5,
LAUNCH_APP1: 0xB6,
LAUNCH_APP2: 0xB7,
OEM_1: 0xBA,
OEM_PLUS: 0xBB,
OEM_COMMA: 0xBC,
OEM_MINUS: 0xBD,
OEM_PERIOD: 0xBE,
OEM_2: 0xBF,
OEM_3: 0xC0,
OEM_4: 0xDB,
OEM_5: 0xDC,
OEM_6: 0xDD,
OEM_7: 0xDE,
OEM_8: 0xDF,
OEM_AX: 0xE1,
OEM_102: 0xE2,
ICO_HELP: 0xE3,
ICO_00: 0xE4,
PROCESSKEY: 0xE5,
ICO_CLEAR: 0xE6,
PACKET: 0xE7,
OEM_RESET: 0xE9,
OEM_JUMP: 0xEA,
OEM_PA1: 0xEB,
OEM_PA2: 0xEC,
OEM_PA3: 0xED,
OEM_WSCTRL: 0xEE,
OEM_CUSEL: 0xEF,
OEM_ATTN: 0xF0,
OEM_FINISH: 0xF1,
OEM_COPY: 0xF2,
OEM_AUTO: 0xF3,
OEM_ENLW: 0xF4,
OEM_BACKTAB: 0xF5,
ATTN: 0xF6,
CRSEL: 0xF7,
EXSEL: 0xF8,
EREOF: 0xF9,
PLAY: 0xFA,
ZOOM: 0xFB,
NONAME: 0xFC,
PA1: 0xFD,
OEM_CLEAR: 0xFE
};
export const KEYBOARD_EVENT_CODE_TO_VKEY : {
"LButton": 0x01,
"RButton": 0x02,
"Cancel": 0x03,
"MButton": 0x04,
"XButton1": 0x05,
"XButton2": 0x06,
"Backspace": 0x08,
"Tab": 0x09,
"Clear": 0x0C,
"Enter": 0x0D,
"ShiftLeft": 0x10,
"ControlLeft": 0x11,
"AltLeft": 0x12,
"Pause": 0x13,
"CapsLock": 0x14,
"KanaMode": 0x15,
"HangulMode": 0x15,
"JunjaMode": 0x17,
"FinalMode": 0x18,
"HanjaMode": 0x19,
"KanjiMode": 0x19,
"Escape": 0x1B,
"Convert": 0x1C,
"NonConvert": 0x1D,
"Accept": 0x1E,
"ModeChange": 0x1F,
"Space": 0x20,
"PageUp": 0x21,
"PageDown": 0x22,
"End": 0x23,
"Home": 0x24,
"ArrowLeft": 0x25,
"ArrowUp": 0x26,
"ArrowRight": 0x27,
"ArrowDown": 0x28,
"Select": 0x29,
"PrintScreen": 0x2A,
"Execute": 0x2B,
// "PrintScreen": 0x2C,
"Insert": 0x2D,
"Delete": 0x2E,
"Help": 0x2F,
"Digit0": 0x30,
"Digit1": 0x31,
"Digit2": 0x32,
"Digit3": 0x33,
"Digit4": 0x34,
"Digit5": 0x35,
"Digit6": 0x36,
"Digit7": 0x37,
"Digit8": 0x38,
"Digit9": 0x39,
"KeyA": 0x41,
"KeyB": 0x42,
"KeyC": 0x43,
"KeyD": 0x44,
"KeyE": 0x45,
"KeyF": 0x46,
"KeyG": 0x47,
"KeyH": 0x48,
"KeyI": 0x49,
"KeyJ": 0x4A,
"KeyK": 0x4B,
"KeyL": 0x4C,
"KeyM": 0x4D,
"KeyN": 0x4E,
"KeyO": 0x4F,
"KeyP": 0x50,
"KeyQ": 0x51,
"KeyR": 0x52,
"KeyS": 0x53,
"KeyT": 0x54,
"KeyU": 0x55,
"KeyV": 0x56,
"KeyW": 0x57,
"KeyX": 0x58,
"KeyY": 0x59,
"KeyZ": 0x5A,
"MetaLeft": 0x5B,
"MetaRight": 0x5C,
"ContextMenu": 0x5D,
"Sleep": 0x5F,
"Numpad0": 0x60,
"Numpad1": 0x61,
"Numpad2": 0x62,
"Numpad3": 0x63,
"Numpad4": 0x64,
"Numpad5": 0x65,
"Numpad6": 0x66,
"Numpad7": 0x67,
"Numpad8": 0x68,
"Numpad9": 0x69,
"NumpadMultiply": 0x6A,
"NumpadAdd": 0x6B,
"NumpadComma": 0x6C,
"NumpadSubtract": 0x6D,
"NumpadDecimal": 0x6E,
"NumpadDivide": 0x6F,
"F1": 0x70,
"F2": 0x71,
"F3": 0x72,
"F4": 0x73,
"F5": 0x74,
"F6": 0x75,
"F7": 0x76,
"F8": 0x77,
"F9": 0x78,
"F10": 0x79,
"F11": 0x7A,
"F12": 0x7B,
"F13": 0x7C,
"F14": 0x7D,
"F15": 0x7E,
"F16": 0x7F,
"F17": 0x80,
"F18": 0x81,
"F19": 0x82,
"F20": 0x83,
"F21": 0x84,
"F22": 0x85,
"F23": 0x86,
"F24": 0x87,
"NumLock": 0x90,
"ScrollLock": 0x91,
"AudioVolumeMute": 0xAD,
"AudioVolumeDown": 0xAE,
"AudioVolumeUp": 0xAF,
"MediaTrackNext": 0xB0,
"MediaTrackPrevious": 0xB1,
"MediaStop": 0xB2,
"MediaPlayPause": 0xB3,
"LaunchMail": 0xB4,
"LaunchApp2": 0xB7,
"Semicolon": 0xBA,
"Equal": 0xBB,
"Comma": 0xBC,
"Minus": 0xBD,
"Period": 0xBE,
"Slash": 0xBF,
"Backquote": 0xC0,
"BracketLeft": 0xDB,
"Backslash": 0xDC,
"BracketRight": 0xDD,
"Quote": 0xDE,
"AltRight": 0xA5,
"ControlRight": 0xA3,
"ShiftRight": 0xA1
};