mirror of
https://github.com/fofolee/uTools-ProcessKiller.git
synced 2025-12-24 02:59:34 +08:00
更改win下获取进程的方式,大幅缩减获取时间
This commit is contained in:
47
preload.js
47
preload.js
@@ -47,16 +47,24 @@ tasklist = () =>
|
||||
{
|
||||
var tasklist = [];
|
||||
if (isWin) {
|
||||
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);
|
||||
execFile(GetBinPath('ProcessKiller.exe'), ['getProcess'], { encoding: 'buffer' },(err, stdout, stderr) => {
|
||||
err && reject(iconv.decode(stderr, 'gb18030'));
|
||||
data = JSON.parse(iconv.decode(stdout, 'gb18030'));
|
||||
data = data.sort((x,y) => {
|
||||
return y.WorkingSet - x.WorkingSet;
|
||||
});
|
||||
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');
|
||||
@@ -97,7 +105,7 @@ taskkill = (task, path, callback) => {
|
||||
}
|
||||
}
|
||||
|
||||
findSecondIndex = (str, cha) => {
|
||||
findThirdIndex = (str, cha) => {
|
||||
var x = str.indexOf(cha);
|
||||
var y = str.indexOf(cha, x + 1);
|
||||
var z = str.indexOf(cha, y + 1);
|
||||
@@ -109,10 +117,10 @@ icns2Base64 = icns => {
|
||||
buffer = fs.readFileSync(icns, Buffer)
|
||||
ImgHead = Buffer.from([0x89, 0x50, 0x4E, 0x47])
|
||||
ImgTail = Buffer.from([0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82])
|
||||
var start = findSecondIndex(buffer, ImgHead);
|
||||
var start = findThirdIndex(buffer, ImgHead);
|
||||
// var WidthPos = start + 18;
|
||||
// var ImgWidth = buffer.readInt16BE(WidthPos);
|
||||
var end = findSecondIndex(buffer, ImgTail) + 8;
|
||||
var end = findThirdIndex(buffer, ImgTail) + 8;
|
||||
var b64 = buffer.slice(start, end).toString('base64')
|
||||
return b64
|
||||
}
|
||||
@@ -144,4 +152,19 @@ 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);
|
||||
// })
|
||||
Reference in New Issue
Block a user