Node.js/electron:如何识别进程是windows进程还是其他应用进程
Node.js/electron: How to Identify the process is windows process or other application process
我正在开发一个提供前 5 CPU 个使用应用程序名称的应用程序。目前,我从以下代码中获得了前 5 个应用程序:
var _ = require('lodash');
var ps = require('current-processes');
ps.get(function(err, processes) {
var sorted = _.sortBy(processes, 'cpu');
var top5 = sorted.reverse().splice(0, 5); // Top 5 results
console.log(top5);
});
输出:在图像中附加 o/p:
我也研究过其他方法:
var exec = require('child_process').exec;
exec('tasklist', function(err, stdout, stderr) {
var lines = stdout.toString().split('\n');
console.log(lines);
});
输出图像
但我无法确定进程(pid) 是windows 服务还是其他应用程序。简而言之,我不想显示任何系统服务。还有其他方法可以识别吗?
tasklist
是一种可接受的方式。
系统应用程序和服务可以通过 Session Name
和 Username
列过滤掉。
tasklist
可以使用帮助程序包代替手动解析命令输出。
基本上 N/A
(可以本地化)和 NT AUTHORITY\*
(可以有本地名称,所以 NT AUTHORITY\SYSTEM
不可靠)用户和服务(可能属于上一类)应该是过滤掉:
tasklist({ verbose: true })
.then(apps => {
apps = apps
.filter(app => app.sessionName !== 'Services')
.filter(app => /^(?!NT AUTHORITY).+\/.test(app.username));
console.log(apps)
})
.catch(console.error);
我正在开发一个提供前 5 CPU 个使用应用程序名称的应用程序。目前,我从以下代码中获得了前 5 个应用程序:
var _ = require('lodash');
var ps = require('current-processes');
ps.get(function(err, processes) {
var sorted = _.sortBy(processes, 'cpu');
var top5 = sorted.reverse().splice(0, 5); // Top 5 results
console.log(top5);
});
输出:在图像中附加 o/p:
我也研究过其他方法:
var exec = require('child_process').exec;
exec('tasklist', function(err, stdout, stderr) {
var lines = stdout.toString().split('\n');
console.log(lines);
});
输出图像
但我无法确定进程(pid) 是windows 服务还是其他应用程序。简而言之,我不想显示任何系统服务。还有其他方法可以识别吗?
tasklist
是一种可接受的方式。
系统应用程序和服务可以通过 Session Name
和 Username
列过滤掉。
tasklist
可以使用帮助程序包代替手动解析命令输出。
基本上 N/A
(可以本地化)和 NT AUTHORITY\*
(可以有本地名称,所以 NT AUTHORITY\SYSTEM
不可靠)用户和服务(可能属于上一类)应该是过滤掉:
tasklist({ verbose: true })
.then(apps => {
apps = apps
.filter(app => app.sessionName !== 'Services')
.filter(app => /^(?!NT AUTHORITY).+\/.test(app.username));
console.log(apps)
})
.catch(console.error);