UNPKG

@jannchie/uiohook-napi

Version:

```bash npm i @jannchie/uiohook-napi ```

98 lines (76 loc) 2.88 kB
# uiohook-napi ```bash npm i @jannchie/uiohook-napi ``` Fixed an issue where the package path could not be located due to execution path changes when using WebPack packaging. Specific performance is as follows: ``` Error: No native build was found for platform=win32 arch=x64 runtime=electron abi=106 uv=1 libc=glibc node=16.14.2 electron=19.0.4 webpack=true loaded from: xxxxxx\uiohook-napi at load.path (xxxxxx\.webpack\main\index.js:26432:9) at load (xxxxxx\.webpack\main\index.js:26408:30) at ./node_modules/.pnpm/uiohook-napi@1.2.0/node_modules/uiohook-napi/dist/index.js (xxxxxx\.webpack\main\index.js:36148:136) at __webpack_require__ (xxxxxx\.webpack\main\index.js:76498:42) at xxxxxx\.webpack\main\index.js:76584:5 at xxxxxx\.webpack\main\index.js:76795:3 at Object.<anonymous> (xxxxxx\.webpack\main\index.js:76798:12) at Module._compile (node:internal/modules/cjs/loader:1118:14) at Module._extensions..js (node:internal/modules/cjs/loader:1173:10) at Module.load (node:internal/modules/cjs/loader:988:32) ``` [![](https://img.shields.io/npm/v/uiohook-napi/latest?color=CC3534&label=uiohook-napi&logo=npm&labelColor=212121)](https://www.npmjs.com/package/uiohook-napi) N-API C-bindings for [libuiohook](https://github.com/kwhat/libuiohook). ### Usage example ```typescript import { uIOhook, UiohookKey } from 'uiohook-napi' uIOhook.on('keydown', (e) => { if (e.keycode === UiohookKey.Q) { console.log('Hello!') } if (e.keycode === UiohookKey.Escape) { process.exit(0) } }) uIOhook.start() ``` ### API ```typescript interface UiohookNapi { on(event: 'input', listener: (e: UiohookKeyboardEvent | UiohookMouseEvent | UiohookWheelEvent) => void): this on(event: 'keydown', listener: (e: UiohookKeyboardEvent) => void): this on(event: 'keyup', listener: (e: UiohookKeyboardEvent) => void): this on(event: 'mousedown', listener: (e: UiohookMouseEvent) => void): this on(event: 'mouseup', listener: (e: UiohookMouseEvent) => void): this on(event: 'mousemove', listener: (e: UiohookMouseEvent) => void): this on(event: 'click', listener: (e: UiohookMouseEvent) => void): this on(event: 'wheel', listener: (e: UiohookWheelEvent) => void): this } export interface UiohookKeyboardEvent { altKey: boolean ctrlKey: boolean metaKey: boolean shiftKey: boolean keycode: number } export interface UiohookMouseEvent { altKey: boolean ctrlKey: boolean metaKey: boolean shiftKey: boolean x: number y: number button: unknown clicks: number } export interface UiohookWheelEvent { altKey: boolean ctrlKey: boolean metaKey: boolean shiftKey: boolean x: number y: number clicks: number amount: number direction: WheelDirection rotation: number } ```