Некоторое время назад я увидел видео мемов «День в жизни инженера -программиста», где инженер написал сценарий, чтобы автоматически включил свой компьютер, открыл мышь и с постоянным перемещением мыши, пока он спит Сделай это казаться онлайн и работает одновременно.
Мы будем писать аналогичную программу с Nodejs, используя Robotjs module Анкет Robotjs-это кроссплатформенная библиотека автоматизации настольных компьютеров.
Это только для образовательных целей. 😊
Шаги
- Запустить
NPM Установить Yargs Robotjsустановить необходимые зависимости. - Создать
app.jsфайл и вставьте код ниже. (Я объясню код):
// app.js
const yargs = require("yargs");
const { hideBin } = require("yargs/helpers");
const arg = yargs(hideBin(process.argv))
.command("$0 [interval]", true, (yargs) => {
yargs
.positional("interval", {
type: "number",
describe: "the interval in second",
})
.default("interval", 60); // 60 seconds default
})
.usage("runs a desktop automator to run key your mmouse move at interval")
.example(
"$0 -mk 3",
"moves the mouse and press the keyboard after three seconds"
)
.option("m", {
description: "enable the mouse",
type: "boolean",
})
.option("k", {
description: "enable the keyboard",
type: "boolean",
})
.default("m", true)
.help("h").argv;
Приведенный выше код настраивает параметры аргумента нашего приложения, а также определяет интерфейс CLI для описания приложения при запуске node app.js -h Анкет У нас будут параметры для запуска только нажатия клавиатуры ( -K ), перемещение мыши ( -m ) или оба ( -mk ) и определить интервалы времени событий за секунды. Я написал статью о аргументах CLI Nodejs. здесь.
- Мы определим логические переменные, чтобы выяснить, какие операции выполнять:
let is_both; let is_mouse; let is_keyboard;
- Далее мы определим функции для перемещения мыши и нажмите на клавиатуру
function moveMouseBackAndForth() {
robot.moveMouseSmooth(200, 200);
robot.moveMouseSmooth(400, 400);
}
function pressKeyBoard() {
robot.keyTap("shift");
}
- Затем мы будем называть функции в зависимости от принятых аргументов. Весь код будет выглядеть так:
const yargs = require("yargs");
const robot = require("robotjs");
const { hideBin } = require("yargs/helpers");
let is_both;
let is_mouse;
let is_keyboard;
const arg = yargs(hideBin(process.argv))
.command("$0 [interval]", true, (yargs) => {
yargs
.positional("interval", {
type: "number",
describe: "the interval in second",
})
.default("interval", 60); // 60 seconds default
})
.usage("runs a desktop automator to run key your mmouse move at interval")
.example(
"$0 -mk 3",
"moves the mouse and press the keyboard after three seconds"
)
.option("m", {
description: "enable the mouse",
type: "boolean",
})
.option("k", {
description: "enable the keyboard",
type: "boolean",
})
.default("m", true)
.help("h").argv;
let { m, k, interval } = arg;
// multiply seconds by 1000 to get milliseconds
interval = interval * 1000;
if (m && k) is_both = true;
else {
if (m) is_mouse = true;
else if (k) is_keyboard = true;
}
function moveMouseBackAndForth() {
robot.moveMouseSmooth(200, 200);
robot.moveMouseSmooth(400, 400);
}
function pressKeyBoard() {
robot.keyTap("shift");
}
if (is_both) {
setInterval(() => {
moveMouseBackAndForth();
pressKeyBoard();
}, interval);
} else if (is_keyboard) setInterval(pressKeyBoard, interval);
else {
setInterval(moveMouseBackAndForth, interval);
}
- Запустить
node app.js -m 3Перемещать нашу мышь только с интервалом в 3 секунды.
Спасибо, что прочитали. Вы бы предпочли, чтобы программа сделала что -то еще, кроме нажатия клавиатуры?
Вы можете получить код из этого Github Gist
Я буду признателен за ваши отзывы и вопросы.
Оригинал: “https://dev.to/zt4ff_1/nodejs-desktop-automation-with-robotjs-but-with-a-program-that-could-get-you-hired-fired-fj”