Я знаю об этих вещах в windows, как было предложено, но я хотел создать что-то, что автоматически переходило бы в спящий режим, даже если ноутбук пытается запустить кто-то другой, чтобы открытые процессы или другие запущенные задачи не закончились / или cra sh резко. Итак, наконец, я создал эту программу в узле и создал файл bat с
node Autohibernate.js
, и, следовательно, программа узла будет выполняться этим. И, наконец, чтобы заставить его работать в скрытом режиме, и даже если p c перезапускается, я сделал программу vbscript, которая делает это. И это примерно так:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\autohibernate.bat" & Chr(34), 0
Set WshShell = Nothing
Итак, наконец, есть программа узла, то есть авто гибернация. js показано ниже -
const { exec, spawn } = require("child_process");
let current;
let critical = 18; // Battery level at which hibernates.
let repeatAfterActionFired = 1; //In minutes.
let generalCheckTimer = 3; // Check after every this time(in second).
async function somelife() {
exec("WMIC PATH Win32_Battery Get EstimatedChargeRemaining", (err, stdout, stderr) => {
current = stdout.slice(29);
console.log("battery-", current);
if (current > critical) {
checkAndHibernate();
} else {
console.log(
`Hibernation Fired, Next checkAndHibernate after ${repeatAfterActionFired} minutes.`
);
setTimeout(() => {
checkAndHibernate();
}, repeatAfterActionFired * 60 * 1_000);
exec("shutdown /h");
// exec()
}
});
}
const checkAndHibernate = () =>
setTimeout(() => {
somelife();
}, generalCheckTimer * 1_000);
checkAndHibernate();
Спасибо, Stackoverflow.