key-reader-logger
Version:
package applied windows(only for now) system hooks to get input data from mouses and keyboards
48 lines (46 loc) • 1.46 kB
text/typescript
import {ChildProcess, ChildProcessWithoutNullStreams, spawn} from "child_process";
import {EventEmitter} from "node:events";
export class KeyReaderLogger extends EventEmitter {
private childProcessKeyboard!: ChildProcessWithoutNullStreams;
private childProcessMouse!: ChildProcessWithoutNullStreams;
constructor() {
super();
}
public startKeyboard() {
this.childProcessKeyboard = spawn("kHook.exe");
this.initKeyboard();
}
private initKeyboard() {
this.childProcessKeyboard.on("close", (code: any) => {
console.log(`child process exited with code ${code}`);
});
this.childProcessKeyboard.stdout.on("data", (data: any) => {
this.emit("keyData", data.toString());
});
}
public startMouse() {
this.childProcessMouse = spawn("mHook.exe");
this.initMouse();
}
private initMouse() {
this.childProcessMouse.on("close", (code: any) => {
console.log(`child process exited with code ${code}`);
});
this.childProcessMouse.stdout.on("data", (data: any) => {
this.emit("mouseData", data.toString());
});
}
public stopKeyboard() {
return this.childProcessKeyboard.kill();
}
public stopMouse() {
return this.childProcessMouse.kill();
}
public stopAll() {
return this.childProcessKeyboard.kill() && this.childProcessMouse.kill();
}
public startAll(){
this.startKeyboard();
this.startMouse();
}
}