huble-mouse-tracker
Version:
Mouse and keyboard event tracker using Python
57 lines (50 loc) • 1.93 kB
JavaScript
// cli.js
const fs = require('fs');
const MouseTracker = require('./index');
const path = require('path');
const logFilePath = path.join('/Users/app/trakr-electron', 'index.txt');
const fileStream = fs.createWriteStream(logFilePath, { flags: 'a' });
function logMessage(message) {
console.log(message);
fileStream.write(message + '\n');
}
const tracker = new MouseTracker();
// Display menu options
logMessage('Mouse Tracker CLI');
logMessage('1. Track mouse only');
logMessage('2. Track keyboard only');
logMessage('3. Track both');
logMessage('4. Exit');
process.stdin.setEncoding('utf8');
process.stdin.on('data', (data) => {
const choice = data.trim();
switch(choice) {
case '1':
tracker.start({
mouseOnly: true,
onMove: (x, y) => logMessage(`Mouse moved to (${x}, ${y})`),
onClick: (x, y, button, pressed) => logMessage(`Mouse ${button} ${pressed ? 'pressed' : 'released'} at (${x}, ${y})`),
onScroll: (x, y, dx, dy) => logMessage(`Scrolled ${dy > 0 ? 'up' : 'down'} at (${x}, ${y})`)
});
break;
case '2':
tracker.start({
keyboardOnly: true,
onKeyPress: (key) => logMessage(`Key pressed: ${key}`)
});
break;
case '3':
tracker.start({
onMove: (x, y) => logMessage(`Mouse moved to (${x}, ${y})`),
onClick: (x, y, button, pressed) => logMessage(`Mouse ${button} ${pressed ? 'pressed' : 'released'} at (${x}, ${y})`),
onScroll: (x, y, dx, dy) => logMessage(`Scrolled ${dy > 0 ? 'up' : 'down'} at (${x}, ${y})`),
onKeyPress: (key) => logMessage(`Key pressed: ${key}`)
});
break;
case '4':
process.exit(0);
default:
logMessage('Invalid option');
}
});