mirror of
https://github.com/fofolee/uTools-ProcessKiller.git
synced 2025-06-07 13:34:09 +08:00
更改关闭进程的方法
This commit is contained in:
parent
15ae052ccd
commit
e393419d5e
@ -32,30 +32,10 @@ CacheIcons = async tasks => {
|
||||
}
|
||||
}
|
||||
|
||||
kill = (taskname, taskpath) => {
|
||||
window.taskkill(taskname, taskpath, err => {
|
||||
if (err) {
|
||||
$("#infopannel").css({
|
||||
"background": "#EF5350"
|
||||
});
|
||||
$("#infopannel").html(err).fadeIn(300).delay(3000).fadeOut(300);
|
||||
} else {
|
||||
if (taskpath == undefined) {
|
||||
$('.select').remove();
|
||||
let tasknum = $(".taskinfo").length
|
||||
utools.setExpendHeight(tasknum > 11 ? 550 : 50 * tasknum);
|
||||
} else {
|
||||
$("#infopannel").css({
|
||||
"background": "#83bf40"
|
||||
});
|
||||
$("#infopannel").html('重启进程成功!').fadeIn(300).delay(3000).fadeOut(300);
|
||||
}
|
||||
window.tasklist((task) => {
|
||||
window.tasks = task
|
||||
show(window.text);
|
||||
});
|
||||
}
|
||||
});
|
||||
kill = async (pid, restart) => {
|
||||
await window.taskkill(pid, restart)
|
||||
window.tasks = await tasklist();
|
||||
show(window.text);
|
||||
}
|
||||
|
||||
search = (t, text) => {
|
||||
@ -143,7 +123,7 @@ utools.onPluginEnter( async ({ code, type, payload }) => {
|
||||
|
||||
$("#tasklist").on('mousedown', '.taskinfo', function (e) {
|
||||
if (1 == e.which) {
|
||||
kill($(this).attr('id'));
|
||||
kill($(this).attr('id'), false);
|
||||
} else if (3 == e.which) {
|
||||
kill($(this).attr('id'), $(this).children(".path").html().replace(/\\/g, '/'))
|
||||
}
|
||||
@ -163,7 +143,7 @@ $(document).keydown(e => {
|
||||
if (event.shiftKey) {
|
||||
kill($(".select").attr('id'), $(".select").children(".path").html().replace(/\\/g, '/'))
|
||||
} else {
|
||||
kill($(".select").attr('id'));
|
||||
kill($(".select").attr('id'), false);
|
||||
}
|
||||
break;
|
||||
case 38:
|
||||
|
89
preload.js
89
preload.js
@ -1,9 +1,10 @@
|
||||
const os = require('os')
|
||||
const iconv = require('iconv-lite')
|
||||
const { spawn, exec, execFile, execSync } = require("child_process")
|
||||
const { exec, execFile, execSync } = require("child_process")
|
||||
const path = require("path")
|
||||
const fs = require('fs');
|
||||
const jschardet = require('jschardet');
|
||||
const process = require('process');
|
||||
// const jschardet = require('jschardet');
|
||||
|
||||
isDev = /unsafe-\w+\.asar/.test(__dirname) ? false : true
|
||||
|
||||
@ -17,31 +18,10 @@ GetBinPath = ExeFile => {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
isWin = os.platform() == 'win32' ? true : false;
|
||||
|
||||
totalMem = os.totalmem();
|
||||
|
||||
powershell = (cmd, callback) => {
|
||||
const ps = spawn('powershell', ['-NoProfile', '-Command', cmd], { encoding: 'buffer' })
|
||||
let chunks = [], err_chunks = [], size = 0, err_size = 0;
|
||||
ps.stdout.on('data', chunk => {
|
||||
chunks.push(chunk);
|
||||
size += chunk.length;
|
||||
})
|
||||
ps.stderr.on('data', err_chunk => {
|
||||
err_chunks.push(err_chunk);
|
||||
err_size += err_chunk.length;
|
||||
})
|
||||
ps.on('close', code => {
|
||||
let stdout = Buffer.concat(chunks, size);
|
||||
stdout = stdout.length ? iconv.decode(stdout, jschardet.detect(stdout).encoding) : '';
|
||||
let stderr = Buffer.concat(err_chunks, err_size);
|
||||
stderr = stderr.length ? iconv.decode(stderr, jschardet.detect(stderr).encoding) : '';
|
||||
callback(stdout, stderr)
|
||||
})
|
||||
}
|
||||
|
||||
tasklist = () =>
|
||||
new Promise((reslove, reject) => {
|
||||
{
|
||||
@ -55,30 +35,13 @@ tasklist = () =>
|
||||
});
|
||||
reslove(data);
|
||||
})
|
||||
// exec('net session > NULL && echo 1 || echo 0', (err, stdout, stderr) => {
|
||||
// let isAdmin = parseInt(stdout),
|
||||
// IncludeUserName = isAdmin ? '-IncludeUserName' : '',
|
||||
// UserName = isAdmin ? ',UserName' : '';
|
||||
// powershell(`Get-Process ${IncludeUserName} | sort-object ws -descending | Select-Object ProcessName,Path,Description,WorkingSet${UserName} | ConvertTo-Json`, (stdout, stderr) => {
|
||||
// stderr && console.log(stderr);
|
||||
// tasklist = JSON.parse(stdout);
|
||||
// reslove(tasklist);
|
||||
// });
|
||||
// })
|
||||
} else {
|
||||
exec('ps -A -o pid -o %cpu -o %mem -o user -o comm | sed 1d | sort -rnk 3', (err, stdout, stderr) => {
|
||||
lines = stdout.split('\n');
|
||||
lines.forEach(line => {
|
||||
if (line) {
|
||||
l = /(\d+)\s+(\d+[\.|\,]\d+)\s+(\d+[\.|\,]\d+)\s+(.*?)\s+(.*)/.exec(line);
|
||||
dict = {
|
||||
pid: l[1],
|
||||
cpu: l[2],
|
||||
mem: l[3],
|
||||
usr: l[4],
|
||||
path: l[5],
|
||||
nam: l[5].split('/').pop(),
|
||||
}
|
||||
dict = { pid: l[1], cpu: l[2], mem: l[3], usr: l[4], path: l[5], nam: l[5].split('/').pop(), }
|
||||
let reg = /.*?\/Applications\/.*?\.app\//.exec(dict.path)
|
||||
dict.app = reg ? reg[0] : false;
|
||||
tasklist.push(dict);
|
||||
@ -90,20 +53,20 @@ tasklist = () =>
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
taskkill = (task, path, callback) => {
|
||||
if (isWin) {
|
||||
let restart = path == undefined ? '' : `;Start-Process -FilePath "${path}"`;
|
||||
powershell(`Stop-Process -Name ${task}${restart}`, (stdout, stderr) => {
|
||||
callback(stderr.split('\n')[0])
|
||||
});
|
||||
} else {
|
||||
let restart = path == undefined ? '' : `&& "${path}"`;
|
||||
exec(`kill -9 ${task}${restart}`, (err, stdout, stderr) => {
|
||||
callback(stderr);
|
||||
});
|
||||
}
|
||||
}
|
||||
taskkill = (pid, restart) =>
|
||||
new Promise((reslove, reject) => {
|
||||
try {
|
||||
process.kill(pid);
|
||||
} catch (error) {
|
||||
utools.showNotification(error);
|
||||
reject(error);
|
||||
}
|
||||
if(restart){
|
||||
utools.showNotification('重启进程成功!')
|
||||
exec(restart);
|
||||
}
|
||||
reslove(true);
|
||||
})
|
||||
|
||||
findThirdIndex = (str, cha) => {
|
||||
var x = str.indexOf(cha);
|
||||
@ -125,7 +88,6 @@ icns2Base64 = icns => {
|
||||
return b64
|
||||
}
|
||||
|
||||
|
||||
GetIcons = PathList =>
|
||||
new Promise((reslove, reject) => {
|
||||
if (isWin) {
|
||||
@ -153,18 +115,3 @@ GetIcons = PathList =>
|
||||
reslove(data)
|
||||
}
|
||||
})
|
||||
|
||||
// var initTime = new Date().getTime();
|
||||
// powershell(`Get-Process | sort-object ws -descending | Select-Object ProcessName,Path,Description,WorkingSet | ConvertTo-Json`, (stdout, stderr) => {
|
||||
// stderr && console.log(stderr);
|
||||
// tasklist = JSON.parse(stdout);
|
||||
// console.log(tasklist);
|
||||
// var EndTime = new Date().getTime();
|
||||
// console.log(EndTime - initTime);
|
||||
// })
|
||||
|
||||
// execFile(path.join('bin', 'ProcessKiller.exe'), ['getProcess'], (err, stdout, stderr) => {
|
||||
// console.log(JSON.parse(stdout));
|
||||
// var EndTime = new Date().getTime();
|
||||
// console.log(EndTime - initTime);
|
||||
// })
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user