Files
XCDesktop/remote/src/controllers/InputController.js

87 lines
1.9 KiB
JavaScript
Raw Normal View History

2026-03-08 01:34:54 +08:00
const { PowerShellInput } = require('../services/input');
const logger = require('../utils/logger');
class InputController {
constructor() {
this.inputService = new PowerShellInput();
}
async mouseMove(x, y) {
try {
await this.inputService.mouseMove(x, y);
} catch (error) {
logger.error('Mouse move failed', { error: error.message, x, y });
}
}
async mouseDown(button = 'left') {
try {
await this.inputService.mouseDown(button);
} catch (error) {
logger.error('Mouse down failed', { error: error.message, button });
}
}
async mouseUp(button = 'left') {
try {
await this.inputService.mouseUp(button);
} catch (error) {
logger.error('Mouse up failed', { error: error.message, button });
}
}
async mouseClick(button = 'left') {
try {
await this.inputService.mouseClick(button);
} catch (error) {
logger.error('Mouse click failed', { error: error.message, button });
}
}
async mouseWheel(delta) {
try {
await this.inputService.mouseWheel(delta);
} catch (error) {
logger.error('Mouse wheel failed', { error: error.message, delta });
}
}
async keyDown(key) {
try {
await this.inputService.keyDown(key);
} catch (error) {
logger.error('Key down failed', { error: error.message, key });
}
}
async keyUp(key) {
try {
await this.inputService.keyUp(key);
} catch (error) {
logger.error('Key up failed', { error: error.message, key });
}
}
async keyPress(key) {
try {
await this.inputService.keyPress(key);
} catch (error) {
logger.error('Key press failed', { error: error.message, key });
}
}
async keyType(text) {
try {
await this.inputService.keyType(text);
} catch (error) {
logger.error('Key type failed', { error: error.message, text });
}
}
stop() {
this.inputService.stop();
}
}
module.exports = InputController;