zrw-timing
Version:
定时操作
92 lines (91 loc) • 2.62 kB
JavaScript
const { app , dialog } = require("electron");
const { exec } = require('child_process');
function restart() {
app.relaunch({
args: process.argv.slice(1).concat([
'--relaunch'
])
});
app.exit(0);
}
function powerOff() {
exec(`shutdown -s -t 0`, (err, stdout, stderr)=>{});
}
// 定时重启应用
function timingRestart(time) {
let time2 = new Date(time).getTime();
// 获取当前时间
let nowTime = new Date().getTime();
// 当前时间大于设定时间则不执行
if (time2 - nowTime <= 0) {
return;
}
// 控制dialog只弹出一次
let dialogFlag = false;
let countdown = setInterval(()=>{
// 获取当前时间
let nowTime2 = new Date().getTime();
let res = (time2 - nowTime2) / 1000;
if (res > 10) {
// 暂无业务
} else if (res > 0) {
if (!dialogFlag) {
dialog.showMessageBox({
"title": "提示",
"message": "10秒后将自动重启应用!",
buttons: [
"我知道了"
],
type: "info"
}).then((res)=>{
// console.log('11', res.response)
});
dialogFlag = true;
}
} else {
clearInterval(countdown);
restart();
}
}, 1000);
}
// 定时关机
function timingShutdown(time) {
let time2 = new Date(time).getTime();
// 获取当前时间
let nowTime = new Date().getTime();
// 当前时间大于设定时间则不执行
if (time2 - nowTime <= 0) {
return;
}
// 控制dialog只弹出一次
let dialogFlag = false;
let countdown = setInterval(()=>{
// 获取当前时间
let nowTime2 = new Date().getTime();
let res = (time2 - nowTime2) / 1000;
if (res > 10) {
// 暂无业务
} else if (res > 0) {
if (!dialogFlag) {
dialog.showMessageBox({
"title": "提示",
"message": "10秒后将关闭计算机!",
buttons: [
"我知道了"
],
type: "info"
}).then((res)=>{
// console.log('11', res.response)
});
dialogFlag = true;
}
} else {
clearInterval(countdown);
powerOff();
}
}, 1000);
}
module.exports = {
timingRestart,
timingShutdown
};